Vous travaillez fréquemment avec plusieurs fichiers Excel et vous devez les combiner en un seul document ? Le processus de fusion de fichiers Excel est devenu un besoin essentiel pour les professionnels qui gèrent des rapports mensuels, des données de vente régionales ou la consolidation de données financières. Avec la bonne méthode, cette tâche peut être réalisée rapidement et efficacement.
En tant que professionnel, vous pouvez être confronté à des situations où vous devez combiner des rapports quotidiens en un rapport mensuel. Ou peut-être devez-vous consolider des données de vente de différentes régions en un seul fichier centralisé. Ce processus de fusion de fichiers Excel peut présenter ses propres défis, particulièrement lorsque le nombre de fichiers à fusionner est important.
Il existe en réalité plusieurs méthodes pour réaliser la fusion de fichiers Excel. Pour un petit nombre de fichiers, vous pouvez utiliser des méthodes manuelles comme le copier-coller ou la fonction Déplacer/Copier la feuille. Cependant, les méthodes manuelles prennent du temps et sont sujettes aux erreurs. C’est pourquoi, pour l’efficacité temporelle et la précision des données, l’utilisation des macros VBA devient la meilleure solution.
Avantages de l’utilisation des macros VBA pour fusionner des fichiers Excel
Les macros VBA offrent plusieurs avantages significatifs dans le processus de consolidation des données. Premièrement, le processus automatisé économise considérablement du temps. Deuxièmement, il réduit le risque d’erreur humaine qui se produit souvent avec les méthodes manuelles. Troisièmement, vous pouvez personnaliser le script selon des besoins spécifiques.
Étapes pour fusionner des fichiers Excel avec VBA
- Ouvrez un nouveau fichier Excel comme emplacement de consolidation
- Appuyez sur la combinaison de touches Alt + F11 pour ouvrir l’Éditeur Visual Basic
- Dans la fenêtre de l’éditeur VBA, cliquez sur ThisWorkbook > Insérer > Module

- Copiez le script VBA suivant dans le module
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 SubSource : Ablebits.com
- Cliquez sur le bouton Exécuter ou appuyez sur F5 pour exécuter la macro

- Sélectionnez tous les fichiers Excel que vous souhaitez fusionner, puis cliquez sur Ouvrir

- Attendez la fin du processus jusqu’à l’apparition de la notification de fin


