Passer au contenu principal

Comment combiner plusieurs classeurs en un seul classeur maître dans Excel?

Avez-vous déjà été bloqué lorsque vous devez combiner plusieurs classeurs dans un classeur maître dans Excel? Le plus terrible, c'est que les classeurs que vous devez combiner contiennent plusieurs feuilles de calcul. Et comment combiner uniquement les feuilles de calcul spécifiées de plusieurs classeurs dans un seul classeur? Ce didacticiel présente plusieurs méthodes utiles pour vous aider à résoudre le problème étape par étape.


Combinez plusieurs classeurs en un seul classeur avec la fonction Déplacer ou Copier

S'il n'y a que quelques classeurs à combiner, vous pouvez utiliser la commande Déplacer ou Copier pour déplacer ou copier manuellement des feuilles de calcul du classeur d'origine vers le classeur maître.

1. Ouvrez les classeurs que vous fusionnerez dans un classeur maître.

2. Sélectionnez les feuilles de calcul dans le classeur d'origine que vous allez déplacer ou copier dans le classeur maître.

Notes:

1). Vous pouvez sélectionner plusieurs feuilles de calcul non adjacentes en maintenant la touche Ctrl et cliquez sur les onglets de la feuille un par un.

2). Pour sélectionner plusieurs feuilles de calcul adjacentes, veuillez cliquer sur le premier onglet de la feuille, maintenez le bouton Shift puis cliquez sur le dernier onglet de la feuille pour les sélectionner tous.

3). Vous pouvez faire un clic droit sur n'importe quel onglet de feuille, cliquer sur Sélectionnez toutes les feuilles dans le menu contextuel pour sélectionner toutes les feuilles de calcul du classeur en même temps.

3. Après avoir sélectionné les feuilles de calcul nécessaires, cliquez avec le bouton droit sur l'onglet de la feuille, puis cliquez sur Déplacer ou copier dans le menu contextuel. Voir la capture d'écran:

4. Puis le Déplacer ou copier une boîte de dialogue apparaît, dans le Réserver dans la liste déroulante, sélectionnez le classeur principal dans lequel vous allez déplacer ou copier des feuilles de calcul. Sélectionnez déplacer pour terminer dans le Avant feuille case, cochez la case Créer une copie et enfin cliquez sur le OK .

Ensuite, vous pouvez voir les feuilles de calcul dans deux classeurs combinés en un. Veuillez répéter les étapes ci-dessus pour déplacer des feuilles de calcul d'autres classeurs vers le classeur maître.


Combinez plusieurs classeurs ou feuilles de classeurs spécifiées dans un classeur principal avec VBA

Si plusieurs classeurs doivent être fusionnés en un seul, vous pouvez appliquer les codes VBA suivants pour y parvenir rapidement. Veuillez faire comme suit.

1. Placez tous les classeurs que vous souhaitez combiner en un sous le même répertoire.

2. Lancez un fichier Excel (ce classeur sera le classeur principal).

3. appuie sur le autre + F11 clés pour ouvrir le Microsoft Visual Basic pour les applications fenêtre. dans le Microsoft Visual Basic pour les applications fenêtre, cliquez sur insérer > Module, puis copiez ci-dessous le code VBA dans la fenêtre Module.

Code VBA 1: Fusionnez plusieurs classeurs Excel en un seul

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
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
End Sub
	

Notes:

1. Le code VBA ci-dessus conservera les noms de feuille des classeurs d'origine après la fusion.

2. Si vous souhaitez distinguer quelles feuilles de calcul du classeur maître proviennent d'où après la fusion, veuillez appliquer le code VBA 2 ci-dessous.

3. Si vous souhaitez simplement combiner des feuilles de calcul spécifiées des classeurs dans un classeur maître, le code VBA 3 ci-dessous peut vous aider.

Dans les codes VBA, "C: \ Users \ DT168 \ Desktop \ KTE \»Est le chemin du dossier. Dans le code VBA 3, "Feuille1, Feuille3"correspond aux feuilles de calcul spécifiées des classeurs que vous combinerez en un classeur maître. Vous pouvez les modifier en fonction de vos besoins.

Code VBA 2: Fusionnez les classeurs en un seul (chaque feuille de calcul sera nommée avec le préfixe de son nom de fichier d'origine):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Code VBA 3: Fusionner les feuilles de calcul spécifiées des classeurs dans un classeur maître:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. appuie sur le F5 clé pour exécuter le code. Ensuite, toutes les feuilles de calcul ou les feuilles de calcul spécifiées des classeurs dans le certain dossier sont combinées à un classeur principal à la fois.


Combinez facilement plusieurs classeurs ou feuilles de classeurs spécifiques dans un classeur

Heureusement, le Combiner utilitaire de classeur de Kutools for Excel facilite beaucoup la fusion de plusieurs classeurs en un seul. Voyons comment faire fonctionner cette fonction en combinant plusieurs classeurs.

Avant d'appliquer Kutools for Excel, S'il vous plaît téléchargez et installez-le d'abord.

1. Créez un nouveau classeur et cliquez sur Kutools Plus > Combiner. Ensuite, une boîte de dialogue apparaît pour vous rappeler que tous les classeurs combinés doivent être enregistrés et que la fonctionnalité ne peut pas être appliquée aux classeurs protégés, veuillez cliquer sur le OK .

2. dans le Combiner des feuilles de travail assistant, sélectionnez Combinez plusieurs feuilles de calcul de classeurs dans un seul classeur , puis cliquez sur le Suivant bouton. Voir la capture d'écran:

3. dans le Combiner des feuilles de travail - Étape 2 sur 3 boîte de dialogue, cliquez sur le Ajouter > Déposez le or Dossier pour ajouter les fichiers Excel, vous fusionnerez en un seul. Après avoir ajouté les fichiers Excel, cliquez sur le Finition et choisissez un dossier pour enregistrer le classeur maître. Voir la capture d'écran:

Désormais, tous les classeurs sont fusionnés en un seul.

Par rapport aux deux méthodes ci-dessus, Kutools for Excel présente les avantages suivants:

  • 1) Tous les classeurs et feuilles de calcul sont répertoriés dans la boîte de dialogue;
  • 2) Pour les feuilles de calcul que vous souhaitez exclure de la fusion, décochez-la simplement;
  • 3) Les feuilles de calcul vierges sont automatiquement exclues;
  • 4) Le nom de fichier d'origine sera ajouté comme préfixe au nom de la feuille après la fusion;
  • Pour plus de fonctions de cette fonctionnalité, veuillez visiter ici.

  Si vous souhaitez bénéficier d'un essai gratuit (30 jours) de cet utilitaire, veuillez cliquer pour le télécharger, puis passez à appliquer l'opération selon les étapes ci-dessus.


Kutools pour Excel - Vous aide à toujours terminer le travail en avance, à avoir plus de temps pour profiter de la vie
Vous vous retrouvez souvent à rattraper le travail, à manquer de temps pour vous et votre famille?  Kutools for Excel peut vous aider à faire face 80 % Excelez les puzzles et améliorez l'efficacité du travail de 80%, vous donnez plus de temps pour prendre soin de votre famille et profiter de la vie.
300 outils avancés pour 1500 scénarios de travail, rendent votre travail tellement plus facile que jamais.
Plus besoin de mémoriser les formules et les codes VBA, reposez désormais votre cerveau.
Les opérations compliquées et répétées peuvent être effectuées une seule fois en quelques secondes.
Réduisez chaque jour des milliers d'opérations clavier et souris, dites adieu aux maladies professionnelles maintenant.
Devenez un expert Excel en 3 minutes, aidez-vous à être rapidement reconnu et à une promotion d'augmentation de salaire.
110,000 300 personnes hautement efficaces et plus de XNUMX entreprises de renommée mondiale.
Faites de votre 39.0 $ une valeur de plus de 4000.0 $ pour la formation des autres.
Essai gratuit complet de 30 jours. Garantie de remboursement de 60 jours sans raison.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations