VBA excel .csv en .txt

Résolu
aurelie76 Messages postés 88 Statut Membre -  
Patrice33740 Messages postés 8400 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

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

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

    ;o)
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aurelie76 Messages postés 88 Statut Membre 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
  7. aurelie76 Messages postés 88 Statut Membre 3
     
    bonsoir à tous,

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

    met le poste en résolu STP
    0