Excel vba .csv

aurelie76 -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

qq'un a-t-il une soluce sur mon problème :

quand je fais tourner ma macro, je converti mon fichier xls en csv, format imposé, le problème c'est qu'il faut convertir .csv en .txt pour être exploité par un autre système. Je ne trouve pas l'instruction permettant de convertir directement .xls en .txt et qui garde ce format

POMME;100782874;025;LTDGTW;LTRFTG
CERISE;100782216;031;LTDGTW;LTRFTG
POIRE;100782990;057;LTDGTW;LTRFTG

de plus on me demande de rajouter un ; devant le premier membre de sorte à obtenir :

;POMME;100782874;025;LTDGTW;LTRFTG
;CERISE;100782216;031;LTDGTW;LTRFTG
;POIRE;100782990;057;LTDGTW;LTRFTG

Merci pour aide,

aurelie


A voir également:

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ce module vous permettra d'ajouter un ";" en début de ligne et de créer un fichier .TXT

Sub traitement()
Chemin_Fichier_CSV="c:\repertoire\nom du fichier.CSV"
Chemin_Fichier_TXT="c:\repertoire\nom du fichier.TXT"
Close
Open Chemin_Fichier_CSV For Input As #1
Open Chemin_Fichier_TXT For Output As #2

Do While Not EOF(1)
Line Input #1, Buffer
Print #2, ";" & Buffer
Loop
Close
End Sub

A vous de le tester et de l'adapter

Bonne continuation
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
J'ai tester cette macros et répond exacr à ce que tu veux..
Sub FichierTxt()
Dim FichIn As Integer, FichOut As Integer, VarS As String
  '  Workbooks("ClasseurHHH.xls").SaveAs Filename:= _
  '      "C:\Répertoir\HHH1.txt", FileFormat:=xlText _
  '      , CreateBackup:=False
  '  Windows("Lire HHH.xls").Activate
    FichIn = FreeFile
    Open "C:\Répertoir\HHH1.txt" For Input As #FichIn
    FichOut = FreeFile
    Open "C:\Répertoir\HHH2.txt" For Output As #FichOut
    While Not EOF(FichIn)
        Line Input #FichIn, VarS
        VarS = ";" & Replace(VarS, Chr(9), ";")
        Print #FichOut, VarS
    Wend
    Close
End Sub


A+
0