Fusion de fichiers .xlsx en un seul sans la première ligne

Bonjour,

Je travaille sous Excel 2013 et dispose de 40 fichiers sous la même disposition (colonnes identiques).

Je cherche à les fusionner pour obtenir une seule feuille dans un seul fichier avec l'ensemble du contenu des 40 fichiers sans répéter la première ligne (ligne de titre des colonnes).

J'ai compris au travers des infos que j'ai pu glaner sur le web qu'une macro était capable de le faire, mais je suis complètement novice en la matière.

Par ailleurs, j'ai trouvé quelques scripts, mais le fait d'y voir le chiffre 65536 (ancien nombre lignes sur Excel) me laisse à penser que je ne pourrai pas les appliquer sur Excel 2013. De plus, ce que je vois écris par défaut lorsque je créé une macro dans un nouveau fichier puis que je la modifie ressemble à la trame des scripts que je trouve mais ne s'y colle pas parfaitement. Les macros que je trouve ne sont pas faites pour Excel 2013.

N'étant pas du tout habitué par la démarche de création et application de macro, je viens vous demander de l'aide. Mais je pense que je risque de m'intéresser au VBA de plus près.

En vous remerciant d'avance de vos réponses !

Bonjour,

voici une proposition de macro,

Sub fusionclasseur()
set wbf=ThisWorkbook ' wbf reférence le classeur maitre
    Set wsc = wbf.Worksheets.Add ' on ajoute une feuille dans le classeur maitre
    wsc.Name = "Résultat fusion" ' on nomme la feuille " résultat fusion"

'-------------------------------
' on  demande du répertoire qui contient les fichiers à fusionner  via dialogue windows  
' résultat dans chemin
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        .Title = "Sélectionner le répertoire contenant les fichiers à fusionner"
        .Filters.Clear
        .AllowMultiSelect = False
        If .Show = -1 Then ' si un répertoire sélectionné
            chemin = .SelectedItems(1) & "\" ' on le met dans chemin
        Else
            Exit Sub 'pas de répertoire sélectionné, on arrête
        End If
    End With
'---------------------------------

    masque = InputBox("introduire le filtre de sélection des classeurs (défaut *.xls*)") ' masque est le filtre des fichiers à sélectionner
    wsn = InputBox("Nom de la feuille à copier de chaque classeur (défaut première feuille trouvée)") ' wsn nom de la feuille à copier de chaque classeur à fusionner
    If masque = "" Then masque = "*.xls*" ' si masque est vide on attribue le filtre par défaut
    f = Dir(chemin & masque) ' f= nom du premier fichier correspondant au critère
    ctrf = 0 ' compteur de classeurs fusionnés
    pli = 1 'première ligne sur résultat fusion
    While f <> "" ' tant qu'il y a des fichiers(classeurs)) à fusionner
        ctrf = ctrf + 1 '
        Set wbi = Workbooks.Open(chemin & f) ' on ouvre le classeur
        If wbi.Name <> wbf.Name Then ' si classeur différent du classeur maitre
            If wsn = "" Then Set wsi = wbi.Worksheets(1) Else Set wsi = wbi.Worksheets(wsn) ' on sélectionne la feuille à fusionner =wsi
            dli = wsi.Range("A" & Rows.Count).End(xlUp).Row ' dli dernière ligne sur wsi
            If dli > 1 Then
                If ctrf = 1 Then pl = 1 Else pl = 2 ' si premier classeur à fusionner, il faut copier l'entête
                wsi.Rows(pl & ":" & dli).Copy wsc.Range("a" & pli) 'on copie les lignes du classeur à fusionner dans la feuille résultat de fusion
                pli = pli + dli + 1 - pl ' on ajuste le nombre de lignes de résultat fusion
            End If
        End If
        wbi.Close 'on ferme le classeur 
        f = Dir() 'on passe au classeur suivant
    Wend
End Sub

Bonjour,

Il faut au préalable que je comprenne quand même ce que je fait en suivant la formation VBA que vous proposez sur le site !

Merci de cette réponse. Je ferai une réponse appliquée à mon cas lorsque j'aurais décortiqué tout ça. Dans l'immédiat, j'ai donc fait du copier-coller basique.

A bientôt !

Bonjour,

je t'ai mis quelques commentaires.

Bonjour,

J'ai enfin testé cette macro et elle fonctionne parfaitement.

Il suffit de donner le bon nom de la feuille à copier et le bonne adresse du répertoire contenant tous les fichiers à fusionner.

Pour les autres éléments en rouge, ils sont redemandés à l'exécution de la macro et il suffit de faire OK à chaque fois.

Merci beaucoup h2so4 !

Rechercher des sujets similaires à "fusion fichiers xlsx seul premiere ligne"