Voici un des exemples de pseudo bug qui peuvent perdre une bonne demi-journée. Mon but était d'importer un fichier CSV dans un onglet Excel, à l'aide la macro OpenText (méthode associée à Workbooks). Normalement aucun soucis: pour importer un fichier avec comme séparateur le point virgule (";"), il suffit d'écrire cela:
Workbooks.OpenText _
Filename:="toto.csv", _
DataType:=xlDelimited, _
Semicolon:=True
Et bien non, cela ne marche pas avec mon Excel 2003. J'ai tout essayé: jouer avec tous les paramètres, changer le type de fin de ligne (LF => CR-LF), et autre gris-gris. A chaque fois, l'importation ne se faisait que sur une colonne. Seul le caractère virgule fonctionnait pour délimiter les colonnes. Le pire, c'est que cela fonctionnait parfaitement avec la méthode Open (l'équivalent de la fonction 'Open' du menu) sans arguments particuliers.
En cherchant sur internet, j'ai découvert que l'extention du fichier à importer devait être .txt. En renomant l'extention du fichier de CSV en TXT, tout fonctionne:
Name "toto.csv" as "toto.txt"
Workbooks.OpenText _
Filename:="toto.txt", _
DataType:=xlDelimited, _
Semicolon:=True
Et pourquoi? J'ai même pas envie de savoir pourquoi. L'informatique est remplie de bizarreries de ce type, parfaitement illogique, mais toujours chronophage. Merci au forum qui ma donnée la solution.
Voici ce qu'il faut retenir:
Si on tente d'importer un fichier avec l’extension .CSV avec la
méthode OpenText, le point virgule ne peut pas être utilisé comme délimiteur, seule la virgule simple fonctionne. Dans ce cas, l’extension .TXT est obligatoire.
Bon courage à vous pour le prochain bug de ce genre.
Doc MicroS.
Merci à ce forum
Aucun commentaire:
Enregistrer un commentaire