Comment fusionner plusieurs fichiers Excel en un seul fichier ?

171
merger-excel-file

Vous avez plusieurs fichiers Excel et vous souhaitez les fusionner en un seul ?

Vous souhaitez peut-être fusionner plusieurs rapports quotidiens en un seul fichier de rapport mensuel. Ou vous voulez fusionner les rapports de vente de chaque région en un seul fichier de rapport.

Il existe de nombreuses façons de fusionner plusieurs fichiers Excel en un seul fichier. Si les fichiers à fusionner sont peu nombreux, vous pouvez le faire manuellement. Pour ce faire, vous pouvez « Copy & Paste » le contenu du document, « Move or Copy » les feuilles, etc.

Si vous devez fusionner de nombreux fichiers, le moyen le plus rapide est d’utiliser les macros VBA.

Fusionner plusieurs fichiers Excel en un seul

  1. Créez un nouveau fichier Excel.
  2. Appuyez sur ( Alt + F11 ) pour ouvrir l’éditeur Visual Basic.
  3. Lorsque la fenêtre de l’éditeur Visual Basic s’ouvre, cliquez sur “ ThisWorkbook > Insert > Module ”.
unprotect-sheet-excel-01
  1. Copiez ensuite le script Macro suivant
Sub MergeExcelFiles()
    Dim fnameList, fnameCurFile As Variant
    Dim countFiles, countSheets As Integer
    Dim wksCurSheet As Worksheet
    Dim wbkCurBook, wbkSrcBook As Workbook
 
    fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
 
    If (vbBoolean <> VarType(fnameList)) Then
 
        If (UBound(fnameList) > 0) Then
            countFiles = 0
            countSheets = 0
 
            Application.ScreenUpdating = False
            Application.Calculation = xlCalculationManual
 
            Set wbkCurBook = ActiveWorkbook
 
            For Each fnameCurFile In fnameList
                countFiles = countFiles + 1
 
                Set wbkSrcBook = Workbooks.Open(Filename:=fnameCurFile)
 
                For Each wksCurSheet In wbkSrcBook.Sheets
                    countSheets = countSheets + 1
                    wksCurSheet.Copy after:=wbkCurBook.Sheets(wbkCurBook.Sheets.Count)
                Next
 
                wbkSrcBook.Close SaveChanges:=False
 
            Next
 
            Application.ScreenUpdating = True
            Application.Calculation = xlCalculationAutomatic
 
            MsgBox "Processed " & countFiles & " files" & vbCrLf & "Merged " & countSheets & " worksheets", Title:="Merge Excel files"
        End If
 
    Else
        MsgBox "No files selected", Title:="Merge Excel files"
    End If
End Sub

Source : ablebits.com

  1. Cliquez ensuite sur le bouton  » Run  » pour fusionner.
merger-excel-file
  1. Sélectionnez ensuite les fichiers Excel que vous souhaitez fusionner. Cliquez ensuite sur « Open ».
excel-dialog
  1. Attendez la fin du processus.
merger-excel-end