VBA excel .csv en .txt

Résolu
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


mon pb est de transformer un .csv en .txt via une macro avec comme résultat dans le fichier txt :

; A;B;C;D

je n'arrive qu'à obtenir

A;B;C;D et il me faut absolument un ; devant le A,

quelqu'un a-t-il une soluce pour mon pb,

merci pour votre aide,

cdlt,

aurelie

7 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Mets le bout de code ici pour qu'on te corrige.

;o)
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

tu l'ouvres dans excel, tu insères une colonne en A, tu l'enregistres en csv puis tu le renommes en .txt
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Si j'ai bien compris, tu veux un fichier .txt dont lignes sont au format .csv - point virgule, mais qui commencent par une colonne vide (c-à-d par un ;).

Voici une macro un peu brute mais qui fonctionne.
Copie la dans un fichier vierge que tu ouvre en même temps que ton fichier xls à convertir (remplace "MonClasseur.xls" par le nom de ton fichier à convertir).

Sub test()

Dim Adr As String
Dim Chemin As String
Dim NomFichier As String
Dim NomFichierCsv As String
Dim NomFichierTxt As String

NomFichier = "MonClasseur.xls"
Workbooks(NomFichier).Activate
Chemin = ActiveWorkbook.Path & "\"
ActiveWorkbook.Save   'par sécurité

NomFichierCsv = Mid(NomFichier, 1, Len(NomFichier) - 3) & "csv"
NomFichierTxt = Mid(NomFichier, 1, Len(NomFichier) - 3) & "txt"
Adr = ActiveSheet.Rows(1).Resize(, ActiveSheet.UsedRange.Columns.Count + 1).Address
'Inserer une ligne et une colonne vierges, et des titres bidons
ActiveSheet.Rows(1).Insert
ActiveSheet.Columns(1).Insert
ActiveSheet.Range(Adr).Formula = "X"
'Enregistrer au format CSV point-virgule et fermer
ActiveWorkbook.SaveAs Filename:=Chemin & NomFichierCsv, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
Workbooks(NomFichierCsv).Saved = True
Workbooks(NomFichierCsv).Close
'Ouvrir (au format text)
Workbooks.Open Filename:=Chemin & NomFichierCsv
'Supprimer le 1° ligne bidon
ActiveSheet.Rows(1).Delete
'Enregistrer au format text et fermer
ActiveWorkbook.SaveAs Filename:=Chemin & NomFichierTxt, FileFormat:=xlCurrentPlatformText, CreateBackup:=False
ActiveWorkbook.Saved = True
ActiveWorkbook.Close

'Ré-ouvrir le fichier xls initial
Workbooks.Open Filename:=Chemin & NomFichier, UpdateLinks:=xlUpdateLinksAlways

End Sub


Tu devras ensuite supprimer manuellement le fichier .cvs devenue inutile, situé dans le même répertoire que ton fichier.xls initial et ton fichier.txt

Cordialement
Patrice
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour tou(te)s,
Tu pourrais au moins répondre aux messages que tu a eu sur ton poste précédant et qui concerne la même question.
Une solution parmi d'autre sur ce topic
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
bonsoir,

désolé pour ceux et celles qui m'ont répondu, je reviens de déplacement professionnel juste il y a qqes minutes, je regarde vos propos et je reviens vous dire ce qu'il en ai mais dores et déjà je vous remercie tous(tes). bisous à tout le monde pour votre aide,

cdlt,

aurelie
0
aurelie76 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   3
 
bonsoir à tous,

j'ai fini par adapter mon soft avec vos conseils, merci bcp, bizzzzzz aurelie76
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
bonsoir,

met le poste en résolu STP
0