bichon3001
Messages postés9Date d'inscriptionmardi 5 mai 2009StatutMembreDernière intervention17 juillet 2009
-
15 juil. 2009 à 20:56
bichon3001
Messages postés9Date d'inscriptionmardi 5 mai 2009StatutMembreDernière intervention17 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
c148270
Messages postés303Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention 3 octobre 20131 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.
bichon3001
Messages postés9Date d'inscriptionmardi 5 mai 2009StatutMembreDernière intervention17 juillet 20091 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.
c148270
Messages postés303Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention 3 octobre 20131 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