Concaténation de plusieurs fichiers txt

Bonjour,

je souhaiterais créer un code VBA afin de concaténer 3 fichiers *.txt dans un fichier final "résultats.txt",

l'ordre de concaténation est indiqué dans une colonne excel à part (suite_conca.xlsx => A1:A10)

Je n'arrive pas à trouver une syntaxe qui marche ! j'ai tenté ci-dessous sans sucées

Sub conca_fichier_txt()

Dim Chemin As String
Dim DerniereLigne As Long           'Index de la dernière ligne
Dim Ligne As Long

Chemin = "C:\fichiers\"
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row

'lire l'ordre de concaténation des fichiers
For suite = 1 To 10 

id_fichier = 'identifier le fichier choisi

Next suite

'Ecrit dans le fichier txt
For i = 1 To 3

Ligne = 1
Do While Ligne <= DerniereLigne
    Open Chemin & "Résultat.txt" For Append As #Ligne
    Print #Ligne, Tableau(Ligne) & vbCrLf
    Close
    Ligne = Ligne + 1
Loop

Next i

MsgBox ("concaténation terminée")

End Sub

merci d'avance pour votre aide

Bonjour,

Voici une piste. Attention, les cellules de la plage doivent contenir le nom des différents fichiers texte si ce n'est pas le cas, donne des précisions où trouver ces noms de fichiers :

Sub conca_fichier_txt()

    Dim Plage As Range
    Dim Cel As Range
    Dim CheminSource As String
    Dim CheminDest As String
    Dim Chaine As String
    Dim FichierResultat As String

    'ici, le dossier est le même mais il suffit d'adapter
    'si on veut enregistrer le fichier "Résultat.trxt" dans un autre dossier
    CheminSource = "C:\fichiers\"
    CheminDest = "C:\fichiers\"

    'nom du fichier
    FichierResultat = "Résultat.txt"

    'défini la plage en colonne A sur la feuille "Feuil1" à partir de A1 (adapter...)
    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    'ouvre le fichier texte qui va recevoir les valeurs (si il n'existe pas, il sera créé !)
    Open CheminDest & FichierResultat For Append As #1

        'parcour la plage (attention, les cellules de la plage contiennent le nom des différents fichiersà récupérer)...
        For Each Cel In Plage

            'ouvre les fichiers les uns après les autres et récupère leur contenu en une seule fois...
            Open CheminSource & Cel.Value For Binary As #2

                 Chaine = Space(LOF(2))
                 Get #2, , Chaine

                 'puis les inscrit dans le fichier de destination
                 Print #1, Chaine

            Close #2

        Next Cel

    Close #1

    MsgBox "concaténation terminée !"

End Sub

merci Theze J'ai essayé ton programme, effectivement cela marche bien

en revanche lors de la concaténation le programme ajoute deux lignes vides entre deux fichiers txt, est-t-il possible de coller successivement les contenus sans ces espaces ?

vide conca
Rechercher des sujets similaires à "concatenation fichiers txt"