Question

J'ai une application VB qui extrait les données et crée 3 fichiers CSV (a.csv, b.csv, c.csv). J'utilise ensuite une autre feuille de calcul Excel (import.xls) pour importer toutes les données des fichiers CSV ci-dessus dans cette feuille.

Le fichier

import.xls contient une macro qui ouvre les fichiers CSV un par un et copie les données. Le problème auquel je suis confronté est que les dates dans les fichiers CSV sont stockées au format mm / jj / aaaa et sont copiées telles quelles sur la feuille Excel. Mais je veux que la date soit au format jj / mm / aaa.

Lorsque j'ouvre manuellement l'un des fichiers CSV, les dates sont affichées au format correct (mm / jj / aaaa). Une idée de comment je peux résoudre ce problème?

Était-ce utile?

La solution

Vous pouvez utiliser la fonction Format VBA:

Format(DateText, "dd/mm/yyyy")

Cela le formera comme bon vous semble.

Pour une solution plus permanente, essayez de modifier vos paramètres régionaux dans Windows même. Excel l’utilise pour le formatage de la date.

Démarrer - > Paramètres - > Panneau de configuration - > Options régionales.

Assurez-vous que la langue est définie sur celle qui convient et que les paramètres de date sont ceux que vous souhaitez.

Autres conseils

Lorsque je rencontre ce problème, j’écris généralement les dates sous la forme aaaa-mm-jj, que Excel interprétera sans ambiguïté.

Tout d’abord, les autres réponses sont bonnes mais il y a quelques informations supplémentaires que vous pourriez trouver utiles

Un fichier CSV ne contient que du texte. C'est-à-dire que les données ne sont pas au format date mais au format texte. Ainsi, lorsque vous ouvrez un fichier CSV dans Excel, Excel interprète par défaut ces données pour vous. Ce n'est pas obligé. Vous pouvez le forcer à le laisser sous forme de texte. Ou, comme indiqué par Mark, vous pouvez ajouter du code dans votre macro d'importation qui le modifie pour vous. Si vous souhaitez un processus automatisé, c'est la meilleure solution. Ajoutez simplement le code dans VBA à la macro qui applique le format de date requis à la colonne contenant les données de date. Vous pouvez également le faire manuellement une fois le fichier ouvert et les données collées en sélectionnant vous-même la colonne et en modifiant le format. Vous pouvez personnaliser les formats de nombres (choisissez Personnalisé), puis les écrire vous-même. P.ex. jj / mm / aaaa.

J'ai eu un problème similaire et je l'ai résolu comme suit. Il s'agit essentiellement de l'option "Tout ce qui précède"

  1. Au format (date, 'jj-mmm-aaaa') convertir la date au format 2-3-4 Par exemple, 01 août 2008, pas du tout un ordinateur erreurs du 1er août au 8 janvier: -)
  2. Depuis que cela a été copié dans Excel revient automatiquement à la format date / heure, convertit le résultat à une chaîne en utilisant cstr sur le fonction en 1
  3. Mettre en forme les cellules dans lesquelles la date est copié sous forme de texte (si vous ne le faites pas, Tête épaisse comme excel est, ce sera le reconvertir en date / heure à nouveau
  4. Enregistrez la feuille au format csv et ouvrir dans le bloc-notes pour confirmer qu'il a travaillé

Certaines personnes diront peut-être que c'est exagéré, mais il vaut mieux être prudent si un utilisateur m'appelle dans un an et me dit que cela fait quelque chose d'étrange avec la date

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top