VBA excel .csv en .txt

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonsoir,

    tu l'ouvres dans excel, tu insères une colonne en A, tu l'enregistres en csv puis tu le renommes en .txt
    1. 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
      1. Contributeur
        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)
        1. 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
          1. bonsoir à tous,

            j'ai fini par adapter mon soft avec vos conseils, merci bcp, bizzzzzz aurelie76