Excel vba .csv

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

2 réponses

  1. 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
    1. Contributeur
      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