Comment combiner plusieurs classeurs Excel via VBA ?

Pour combiner plusieurs classeurs Excel, vous devez utiliser un code qui peut vous permettre de choisir les fichiers que vous souhaitez combiner ou vous pouvez vous référer à un emplacement de chemin particulier et combiner tous les fichiers Excel dans le classeur en cours.

VBA combiner plusieurs classeurs

Vous pouvez utiliser le code suivant qui utilise l’emplacement que j’ai mentionné dans la variable path (un dossier du bureau de mon système).

Dim Path As String
Dim Filename As String
Dim Sheet As Worksheet

Path = "C:UsersDellDesktopsample-data"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""

Workbooks.Open Filename:=Path & Filename, ReadOnly:=True

    For Each Sheet In ActiveWorkbook.Sheets
        Sheet.Copy After:=ThisWorkbook.Sheets(1)
    Next Sheet

Workbooks(Filename).Close

Filename = Dir()
Loop

Étapes pour combiner des fichiers Excel à l’aide de VBA

  1. Ouvrez l’éditeur Visual Basic (assurez-vous d’activer l’onglet développeur si vous l’avez déjà sur le ruban).
    open the visual basic editor
  2. Après cela, localisez le classeur actuel à partir de la fenêtre du projet (contrôle + r) et insérez-y un nouveau module.
    locate the current workbook
  3. Vous aurez une fenêtre de code dans le module (double-cliquez dessus) où vous devrez coller le code que vous avez (tel quel).
    code window in the module
  4. À partir de là, vous devez modifier la valeur de la variable de chemin avec l’emplacement du dossier dans lequel se trouvent tous les fichiers Excel que vous souhaitez combiner.
    change the value for the path variable
  5. À la fin, exécutez le code et vous obtenez toutes les feuilles de calcul du classeur dans le fichier actuel.

Liens utiles : Exécuter une macroEnregistreur de macrosVisual Basic EditorManuel de macros personnelles

Ce code ouvre chaque fichier un par un et copie chaque feuille de calcul une par une et la colle dans le fichier actuel avec le même nom. Voici le même code mais avec la mise à jour de l’écran false au début pour tout exécuter au niveau du backend.

Dim Path As String
Dim Filename As String
Dim Sheet As Worksheet

Application.ScreenUpdating = False

Path = "C:UsersDellDesktopsample-data"
Filename = Dir(Path & "*.xlsx")

Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
    For Each Sheet In ActiveWorkbook.Sheets
        Sheet.Copy After:=ThisWorkbook.Sheets(1)
    Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop

Application.ScreenUpdating = True

End Sub

Remarque : Si vous souhaitez apprendre à combiner les données de plusieurs classeurs dans un seul tableau , assurez-vous de consulter ce guide .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *