Enregistrement fichier CSV

Résolu
bichon3001 Messages postés 9 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 17 juillet 2009 - 15 juil. 2009 à 20:56
bichon3001 Messages postés 9 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 17 juillet 2009 - 16 juil. 2009 à 13:09
Bonjour,
Je travaille sur une macro vba où j'ouvre un fichier .csv existant (enregistré avec séparateur point-virgule) :
Workbooks.Open (toto & "" & "Fichier.csv")
Je rentre des données de type texte contenant des virgules, sur 3 colonnes :

ex : cells(1,1)="..." etc.

A B C
1 Villes : Latitude : Longitude :
2 1,Amareins 46.083333 4.8
3 1,Ambleon 45.75 5.6

Jusque là ça va?
Problème : Je ferme le fichier .csv en l'enregistrant :
Workbooks("Fichier.csv").Close saveChanges = True
Je l'ouvre manuellement pour vérifier, et tout est affiché dans la colonne A avec des virgules.
A B
1 Villes :,Latitude :,Longitude :
2 1,Amareins ,46.083333,4.8
3 1,Ambleon ,45.75,5.6

Je suppose que c'est un problème de séparateur? Mais j'aurais besoin d'aide.
Merci

4 réponses

c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 juil. 2009 à 08:40
Bonjour
Il faut remplacer les virgules par des poins-virgule ou modifier les paramètres régionaux via la panneau de configuration ou via les opptions excel (options,international).

Excel ne propose pas l'assistant importation pour les fichiers csv. Il affiche donc tout en colonne A
Pour lancer l'assistant il faut renommer le csv en txt.
Attention encore. L'ouverture d'un fichier txt avec l'option "ouvrir avec" depuis l'explorateur excel ne propose pas l'assistant importation. Il faut lancer excel et ouvrir le fichier txt.

Bonne journée
3
bichon3001 Messages postés 9 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 17 juillet 2009 1
16 juil. 2009 à 10:30
Bonjour,
Dans les paramètres régionaux d'Excel il y a déjà ";" comme séparateur, et ça ne marche pas.
Si j'enregistre manuellement j'ai bien mes 3 colonnes, mais pas en enregistrant depuis vba. Mon fichier csv me sert pour un programme Python que j'exécute depuis Vba.
J'ai essayé :
Set newbook = Workbooks.Add
newbook.SaveAs Filename:=toto _ + "\Tournee.csv", FileFormat:=xlCSV, Local:=True
mais ça ne marche pas non plus.
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 juil. 2009 à 12:25
Dans mon cas je ne me suis pas cassé la tête.
Je suis parti d'un feuille, j'ai concaténé les cellules en incluant le point virgule (du genre range("a1") & ";" & range("b1") etc)
et enregistré sous la forme :
nomdefichier & ".csv",fileformat:=xlcsvmsdos
sans utiliser le paramètre local

bonne journée
0
bichon3001 Messages postés 9 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 17 juillet 2009 1
16 juil. 2009 à 13:09
Je vais essayer.
Pour l'instant, j'ai mis "," dans les paramètres régionaux. Ca marche mais c'est pas pratique.
Merci
0
Rejoignez-nous