[Catégorie modifiée VB6 -> VBA] Export de données dans fichier csv [Résolu]

Messages postés
20
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
6 juillet 2011
- - Dernière réponse : franck6983
Messages postés
20
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
6 juillet 2011
- 23 mai 2011 à 11:13
Bonjour à tous,

Je souhaite exporter des feuilles excel dans un fichier csv, ce que j'arrive à faire avec un
ActiveWorkbook.SaveAs Filename:="c:\temp\***.csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True
mais mon problème est que dans ma feuille ma première colonne est vide et donc mon ficher csv devrait commencer par un ; ce qui n'est pas le cas.
Est-ce que quelqu'un aurait une idée sur le fait que lors de la création de mon fichier ça ne prend pas en compte ma première colonne vide, ou trouver un moyen pour commencer chaque ligne de mon csv par un ; ?

Merci de votre aide.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
3
Merci
Dim applications as string
'ouvrir le fichier d'origine en lecture
applications= "c:\temp\applications.csv"
Open applications For Input As #1
Open Mid(applications, 1, Len(applications) - 4) & "2.CSV" For Output As #2
While Not EOF(1)
'lire le fichier d'origine ligne par ligne
Line Input #1, ligne
'ajouter le point virgule en sortie
Print #2, ";" & ligne
Wend
Close #2
Close #1
'supprimer le fichier d'origine
Kill applications
' renommer le 2ème fichier avec le nom du premier
Name Mid(applications, 1, Len(applications) - 4) & "2.CSV" As applications 

Dire « Merci » 3

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

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

Commenter la réponse de cs_loulou69
Messages postés
20
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
6 juillet 2011
1
1
Merci
Merci beaucoup ça fonctionne.
Commenter la réponse de franck6983
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
0
Merci
bonjour

J'ai observé ce que tu écris, si la colonne A est vide elle n'apparait pas dans le fichier de sortie

Lorsque j'ajoute des simples cotes en colonne A et que j'enregistre en format CSV, lorsque je charge le CSV dans Notepad mon fichier CSV par miracle commence par un point-virguke et n'a pas stocké la simple cote.

N'est ce pas ce qui est souhaité?

Autre solution
Si filename est le nom du fichier CSV
La routine suivante ajoutera le point virgule manquant

'ouvrir le fichier d'orginie en lecture
open filename For Input as #1
open mid(filename,1,len(filename)-3) & "2.CSV" For Input as #2
While not EOF(1)
'lire le fichier d'origine ligne par ligne
line input #1, ligne
'ajouter le point virgule en sortie
print #2,";" & ligne
Wend

close #2
close #1
'supprimer le fichier d'origine
Kill filename
' renommer le 2ème fichier avec le nom du premier
Name mid(filename,1,len(filename)-3) & "2.CSV", filename
Commenter la réponse de cs_loulou69
Messages postés
20
Date d'inscription
lundi 18 avril 2011
Statut
Membre
Dernière intervention
6 juillet 2011
1
0
Merci
tu as bien compris ce que je voulais faire, j'ai testé ta première solution qui ne fonctionne pas pour moi, et j'essaie maintenant avec ton code mais j'ai un message d'erreur "argument ou appel de procédure incorrect" voici le code que j'ai rentré :
'ouvrir le fichier d'orginie en lecture
Open "c:\temp\applications.csv" For Input As #1
Open Mid(applications, 1, Len(applications) - 3) & "c:\temp\2.CSV" For Input As #2
While Not EOF(1)
'lire le fichier d'origine ligne par ligne
Line Input #1, ligne
'ajouter le point virgule en sortie
Print #2, ";" & ligne
Wend

Close #2
Close #1
'supprimer le fichier d'origine
Kill applications
' renommer le 2ème fichier avec le nom du premier
Name Mid(applications, 1, Len(applications) - 3) & "2.CSV" As applications
Commenter la réponse de franck6983