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

Résolu
franck6983 Messages postés 20 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 6 juillet 2011 - 23 mai 2011 à 09:42
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.

4 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
23 mai 2011 à 11:08
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 

3
franck6983 Messages postés 20 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 6 juillet 2011 1
23 mai 2011 à 11:13
Merci beaucoup ça fonctionne.
1
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
23 mai 2011 à 10:23
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
0
franck6983 Messages postés 20 Date d'inscription lundi 18 avril 2011 Statut Membre Dernière intervention 6 juillet 2011 1
23 mai 2011 à 11:02
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
0
Rejoignez-nous