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. 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+
    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