Comment combiner plusieurs fichiers Excel dans un seul classeur Excel

J'ai reçu un appel d'un ami qui souhaitait combiner plusieurs fichiers Excel dans un seul classeur Excel. Il avait beaucoup de fichiers dans un dossier et il voulait rassembler toutes les feuilles de calcul de tous les classeurs dans un seul classeur.

Bien que cela puisse être fait manuellement, cela prendrait du temps et serait source d'erreurs.

Cependant, un simple code VBA peut le faire en quelques secondes.

Combinez plusieurs fichiers Excel en un seul fichier

Voici le code qui peut combiner plusieurs classeurs Excel dans un dossier spécifié dans un seul classeur Excel :

Sub ConslidateWorkbooks() 'Créé par Sumit Bansal à partir de https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ("userprofile") & "DesktopTest" Filename = Dir( FolderPath & "*.xls*") Do While Filename "" Workbooks.Open Filename:=FolderPath & 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

Comment utiliser ce code ?

Voici les étapes à suivre pour utiliser ce code :

  • Mettez tous les fichiers Excel que vous souhaitez combiner dans un dossier. Pour les besoins de ce didacticiel, j'ai créé un dossier nommé Test et j'y ai six fichiers (4 classeurs Excel et 1 Power Point et Word chacun).
  • Ouvrez un nouveau classeur Excel.
  • Appuyez sur ALT + F11 (ou allez dans Développeur -> Code -> Visual Basic). Cela ouvrira l'éditeur Visual Basic.
  • Dans l'éditeur VB, dans l'éditeur de projet, cliquez avec le bouton droit sur l'un des objets du classeur et accédez à Insertion -> Module. Cela insérera un module pour le classeur.
  • Double-cliquez sur le module. Cela ouvrira la fenêtre de code sur la droite.
  • Copiez et collez le code ci-dessus dans la fenêtre de code.
  • Dans le code, vous devez modifier la ligne de code suivante :
    CheminDossier = Environ("profil utilisateur") & "Test de bureau"

    Dans cette ligne, modifiez la partie entre guillemets doubles (surlignée en orange) avec l'emplacement du dossier dans lequel vous avez les fichiers que vous souhaitez combiner. Dans le code utilisé ci-dessus, le dossier se trouve sur le bureau. Si vous l'avez à un autre emplacement, spécifiez ce chemin ici.

  • Placez le curseur n'importe où dans le code et cliquez sur le bouton de lecture vert dans les options de la barre d'outils (ou appuyez sur la touche F5).

Cela exécutera le code et toutes les feuilles de calcul de tous les fichiers Excel du dossier seront consolidées dans un seul classeur.

Comment fonctionne ce code ?

  • Le code utilise la fonction DIR pour obtenir les noms de fichiers du dossier spécifié.
  • La ligne suivante attribue le premier nom de fichier Excel à la variable « Nom de fichier ».
    Nom de fichier = Dir(Chemin du dossier & "*.xls*")
  • Ensuite, la boucle Do While est utilisée pour vérifier si tous les fichiers ont été couverts.
  • Dans la boucle « Do While », la boucle « For Each » est utilisée pour copier toutes les feuilles de calcul dans le classeur dans lequel nous exécutons le code.
  • À la fin de la boucle Do, la ligne de code suivante est utilisée : Filename = Dir(). Il attribue le prochain nom de fichier Excel à la variable Nom de fichier et la boucle recommence.
  • Lorsque tous les fichiers sont couverts, la fonction DIR renvoie une chaîne vide, c'est-à-dire lorsque la boucle se termine.

Voici une explication de la fonction DIR dans la bibliothèque MSDN :

Réal renvoie le premier nom de fichier qui correspond au chemin d'accès. Pour obtenir des noms de fichiers supplémentaires qui correspondent au chemin d'accès, appelez Réal encore une fois sans arguments. Lorsqu'aucun autre nom de fichier ne correspond, Réal renvoie une chaîne de longueur nulle ("").

Avez-vous déjà essayé quelque chose de ce genre en utilisant VBA? Partagez ce que vous avez fait et nous pouvons tous en tirer des leçons.

Économisez un temps fou en utilisant VBA. Vérifiez COURS Excel VBA.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave