Enregistrement fichier CSV [Résolu]

Messages postés
9
Date d'inscription
mardi 5 mai 2009
Statut
Membre
Dernière intervention
17 juillet 2009
- - Dernière réponse : 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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de c148270
Messages postés
9
Date d'inscription
mardi 5 mai 2009
Statut
Membre
Dernière intervention
17 juillet 2009
1
0
Merci
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.
Commenter la réponse de bichon3001
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
0
Merci
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
Commenter la réponse de c148270
Messages postés
9
Date d'inscription
mardi 5 mai 2009
Statut
Membre
Dernière intervention
17 juillet 2009
1
0
Merci
Je vais essayer.
Pour l'instant, j'ai mis "," dans les paramètres régionaux. Ca marche mais c'est pas pratique.
Merci
Commenter la réponse de bichon3001