Excel vba .csv

aurelie76 -  
lermite222 Messages postés 9042 Statut Contributeur -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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