Note: The other languages of the website are Google-translated. Back to English

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 Mission 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 pour 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 pour 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 Récapitulatif 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 pour 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 pour Excel peut vous aider à gérer 80% d'énigmes Excel et à améliorer 80% d'efficacité de travail, vous donner 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.

Commentaires (146)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Salut Plz aidez-moi à cette condition ci-dessous. J'ai un classeur différent qui contient plus de 5 feuilles de calcul chacune dans un chemin différent. Je dois consolider toutes les feuilles de calcul de différents classeurs dans un seul classeur. Quelqu'un peut-il m'aider à résoudre avec macro.TIA !
Ce commentaire a été minimisé par le modérateur sur le site
[quote]Salut Plz aidez-moi à cette condition ci-dessous. J'ai un classeur différent qui contient plus de 5 feuilles de calcul chacune dans un chemin différent. Je dois consolider toutes les feuilles de calcul de différents classeurs dans un seul classeur. Quelqu'un peut-il m'aider à résoudre avec macro.TIA !Par A. Karthi[/quote] Veuillez télécharger et installer Kutools for Excel, vous pouvez le faire rapidement. Mais si vous voulez utiliser un VBA, c'est peut-être trop compliqué. Pour plus d'informations sur la façon de le faire, s'il vous plaît visitez:http://www.extendoffice.com/product/kutools-for-excel/excel-combine-worksheets-into-one.html
Ce commentaire a été minimisé par le modérateur sur le site
KUTOOLS Solution géniale. J'ai besoin d'une aide supplémentaire lorsque je crée un classeur principal, puis la couleur de la cellule de la feuille de travail est modifiée par rapport à la feuille de calcul d'origine. Comment puis-je le conserver comme feuille de calcul originale.
Ce commentaire a été minimisé par le modérateur sur le site
Notre bureau a des doublons de données (c'est-à-dire le nom, l'adresse, la ville, le montant, la date de signature) de plusieurs originaux Excel et essayer de combiner les données va être un travail en cours. Comment cela peut-il être fait pour éliminer le double travail et la double saisie d'informations ?
Ce commentaire a été minimisé par le modérateur sur le site
J'obtiens une "erreur d'exécution 1004", la méthode de copie de la classe Worksheet a échoué sur la ligne qui lit : Sheet.Copy After:=ThisWorkbook.Sheets(1). J'utilise Excel 2010. Pouvez-vous m'aider ? Merci, - Susie
Ce commentaire a été minimisé par le modérateur sur le site
Hé Susie, je travaille moi-même sur ce problème depuis un moment maintenant, obtenant la même erreur. Vérifiez si le module a été créé sous PERSONNEL au lieu de votre classeur actif. Une fois que j'ai créé le module sous le bon arbre, le code ci-dessous a très bien fonctionné. Sub GetSheets_xls() Dim Sheet As Worksheet Path = "C:\Users\yournamehere\Desktop\Testingfolder\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=False Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Copy After:=ThisWorkbook.Sheets(1) 'Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub Hope this help!
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup. Votre code a bien fonctionné.
Ce commentaire a été minimisé par le modérateur sur le site
[quote]J'obtiens une "erreur d'exécution 1004", la méthode de copie de la classe Worksheet a échoué sur la ligne qui lit : Sheet.Copy After :=ThisWorkbook.Sheets(1). J'utilise Excel 2010. Pouvez-vous m'aider ? Merci, - SusiePar Susie[/quote] J'ai eu le même problème, ça marche quand je vais voir et afficher "PERSONNEL", il semble avoir du mal à accéder à cette macro avec le maître caché.
Ce commentaire a été minimisé par le modérateur sur le site
Allez voir et affichez "PERSONNEL" - il semble avoir du mal à exécuter tout le code lorsque le maître est masqué. Vous pouvez rendre la macro native de ce classeur, mais vous devrez recréer le tout à chaque fois que vous voudriez l'utiliser.
Ce commentaire a été minimisé par le modérateur sur le site
Salut! Merci beaucoup de ce fichier............ :roll: Cordialement
Ce commentaire a été minimisé par le modérateur sur le site
Salut Super conseil. A fait presque tout ce que je voulais. Dans le classeur combiné, j'aurais aimé que le nom de la feuille de calcul contienne le nom du classeur d'origine, donc je sais de quel classeur proviennent les données. Les données que je combine proviennent de différentes archives. Je dois rechercher une entrée, mais je ne sais pas dans quelle archive elle se trouve. Ainsi, en combinant toutes les données dans un seul fichier, il me sera possible de rechercher toutes les archives à la fois. Mais j'ai encore besoin de savoir dans quelle archive se trouve l'entrée. Henrik
Ce commentaire a été minimisé par le modérateur sur le site
Pour que le code incorpore le nom du fichier, faites simplement ceci. Sub GetSheets() Dim temp As String Path = "C:\Users\....\Desktop\Excel combine\" Filename = Dir(Path & "*.xlsx") Do While Filename "" Workbooks.Open Filename := Chemin et nom de fichier, ReadOnly :=True temp = ActiveWorkbook.Name ActiveSheet.Name = temp ActiveWorkbook.Sheets(temp).Copy After :=ThisWorkbook.Sheets(1) Workbooks(Filename).Close Filename = Dir() Loop End Sub Note : c'est pour ne copier que la première feuille, il peut être modifié pour faire toutes les feuilles
Ce commentaire a été minimisé par le modérateur sur le site
Comment incorporer plus de feuilles et comment spécifier un fichier maître différent pour coller toutes les feuilles.
Ce commentaire a été minimisé par le modérateur sur le site
C'est une excellente solution en effet. Merci. Un problème cependant, lorsque je l'exécute comme ceci, Excel me demande si je veux enregistrer les modifications avant de fermer (puisque le nom a été changé), et je ne veux pas le faire pour chaque fichier (environ 32 par exécution). Y aurait-il un moyen de résoudre cela ?
Ce commentaire a été minimisé par le modérateur sur le site
C'est superbe :lol: m'a beaucoup aidé....
Ce commentaire a été minimisé par le modérateur sur le site
Merci mon pote, tu as fait ma journée à partir de ce site Web très utile... En fait, je voulais aussi combiner les mêmes données d'en-tête de différentes feuilles en 1 feuille de calcul principale, le KUTOOL pour Excel m'a beaucoup aidé... Merci encore une fois .... :)
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour les précieuses informations. Cela fonctionne vraiment. Les étapes répertoriées dans cet article m'ont vraiment facilité la tâche. Merci Dinesh
Ce commentaire a été minimisé par le modérateur sur le site
Merci de partager votre savoir
Ce commentaire a été minimisé par le modérateur sur le site
Comment faites-vous pour qu'il mette à jour les modifications du classeur d'origine? J'essaie d'obtenir un résumé national dans lequel chaque région entrera ses données dans ses propres cahiers de travail, puis le résumé national sera mis à jour à partir de cela ? J'aimerais que cela soit mis en place pour l'année complète au début et ne pas travailler rétrospectivement.
Ce commentaire a été minimisé par le modérateur sur le site
Après avoir combiné les feuilles de calcul dans un classeur, comment l'enregistrer ? Je n'ai pas pu l'enregistrer et il s'appelle Book1 et je clique sur enregistrer ou enregistrer sous mais ne fonctionne pas.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai suivi les étapes de "Combiner plusieurs classeurs en un seul classeur avec VBA" et cliqué sur "exécuter", rien ne s'est passé. Je ne suis pas au courant des erreurs et je ne sais pas comment corriger. Voulez-vous me aider? voici le code que j'ai entré dans un nouveau classeur. Merci Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After :=ThisWorkbook.Sheets(1) Prochaine feuille Workbooks(Filename).Close Filename = Dir() Loop End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Cher Monsieur / Madame: J'ai suivi les étapes de "Combiner plusieurs classeurs en un seul classeur avec VBA" pour configurer le module suivant, mais rien ne s'est passé. Pourriez-vous m'aider à trouver le problème? merci Sub GetSheets() Path = "p:\download\macro\" Filename = Dir(Path & "*.xls") 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
Ce commentaire a été minimisé par le modérateur sur le site
pour les nouvelles versions d'Excel, essayez ceci. J'ai enregistré mon classeur ouvert en tant que catalogue et tous les fichiers sont dans c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Essayez ceci pour les nouvelles versions d'Excel. J'ai enregistré mon classeur en tant que catalogue, tous les fichiers sont dans c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
Ce commentaire a été minimisé par le modérateur sur le site
[quote]Essayez ceci pour les nouvelles versions d'Excel. J'ai enregistré mon classeur en tant que catalogue, tous les fichiers sont dans c:\temp. Sub GetSheets() Path = "c:\temp\" Filename = Dir(Path & "*.xls") Do While Filename "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook. Sheets Sheet.Copy After:=Workbooks("catalog.xlsx").Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End SubPar Dave[/quote] J'obtiens toujours "impossible d'assigner à la propriété en lecture seule" concernant le chemin... Une idée ?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai aussi ce problème. Avez-vous compris?
Ce commentaire a été minimisé par le modérateur sur le site
Rien pour le moment... Je n'ai trouvé aucune solution ou personne n'a suggéré de solution. Désolé...
Ce commentaire a été minimisé par le modérateur sur le site
Moi aussi. Cela fonctionnait il y a 6 mois, la dernière fois que j'ai dû l'exécuter. Quelqu'un a-t-il déjà trouvé la solution ? Si vous l'aviez exécuté auparavant et que cela ne fonctionne plus, cela pourrait-il être lié à une mise à jour de Microsoft? C'est un outil vraiment pratique pour mes tâches et me fait gagner beaucoup de temps. Qu'est-ce qui aurait pu changer pour qu'Excel commence à afficher ce message tout d'un coup ? Étant relativement nouveau dans VBA, je ne sais pas par où commencer pour analyser la logique. Cordialement, Greg. Glasgow, Ecosse.
Ce commentaire a été minimisé par le modérateur sur le site
Il semble que "Path" soit maintenant réservé, utilisez donc n'importe quel autre nom et remplacez "Path", par exemple "Mypath".
Ce commentaire a été minimisé par le modérateur sur le site
Peut-être devriez-vous changer ReadOnly:=True en ReadOnly:=False, j'ai fait et c'était utile
Ce commentaire a été minimisé par le modérateur sur le site
Je cherchais quelque chose dans ce sens mais je voulais faire un commentaire. Le nom de fichier Do While "" n'a-t-il pas besoin d'être autre chose que "" ? ou j'ai mal lu ? Peut-être Do While NOT filename = "" Juste une pensée...
Ce commentaire a été minimisé par le modérateur sur le site
Je veux combiner toutes les feuilles en une seule feuille où les en-têtes sont communs... pls help
Ce commentaire a été minimisé par le modérateur sur le site
Salut, j'ai essayé d'utiliser les macros ci-dessus pour assembler quelques fichiers, malheureusement aucun résultat... quelqu'un peut-il m'aider à me débarrasser de l'assemblage manuel des fichiers.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai 112 feuilles Excel que je veux mettre dans une seule feuille sans copier-coller. Sil te plait aide moi.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai un classeur contenant environ 250 feuilles. J'ai besoin de Cobain dans une feuille. merci de me donner une solution
Ce commentaire a été minimisé par le modérateur sur le site
Essayez ceci... Je l'ai reçu d'un autre site mais malheureusement je ne me souviens pas du nom de la dame, donc mes excuses pour ne pas lui avoir donné de mention, ma mauvaise" Combinez plusieurs WB dans Excel : N'OUBLIEZ PAS DE CHANGER MyPath = ! Sub Merge2MultiSheets( ) Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilename As String Application.DisplayAlerts = False Application.EnableEvents = False Application.ScreenUpdating = False MyPath = "\\MyPath\etc\etc..." Set wbDst = Workbooks.Add(xlWBATWorksheet) strFilename = Dir(MyPath & "\*.xls", vbNormal) If Len(strFilename) = 0 Then Exit Sub Do Until strFilename = "" Set wbSrc = Workbooks.Open(Filename:= MyPath & "\" & strFilename) Set wsSrc = wbSrc.Worksheets(1) wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count) wbSrc.Close False strFilename = Dir() Boucle wbDst.Worksheets(1). Supprimer Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'ai ajouté le code dans un module. Nommé le livre Excel Masterfile. Où dans le code dois-je ajouter. Merci
Ce commentaire a été minimisé par le modérateur sur le site
Aucun de ceux-ci n'a fonctionné pour moi, j'ai finalement réussi à faire fonctionner celui-ci. Pour votre information, j'utilise 2010 'Description : Combine tous les fichiers d'un dossier dans un fichier maître. Sub MergeFiles() Dim path As String, ThisWB As String, lngFilecounter As Long Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet Dim Filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer RowofCopySheet = 2 ' Ligne de départ dans les feuilles que vous copiez à partir de ThisWB = ActiveWorkbook.Name path = "mypath...." ' N'oubliez pas de modifier cette Application.EnableEvents = False Application.ScreenUpdating = False Set shtDest = ActiveWorkbook .Sheets(1) Filename = Dir(path & "\*.xls", vbNormal) If Len(Filename) = 0 Then Exit Sub Do Until Filename = vbNullString If Not Filename = ThisWB Then Set Wkb = Workbooks.Open(Filename: =chemin & "\" & nom de fichier) Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)) Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) CopyRng.Copy Dest Wkb.Close False End If Filename = Dir() Loop Rang e("A1").Sélectionnez Application.EnableEvents = True Application.ScreenUpdating = True MsgBox "Terminé !" Sous-titre de fin
Ce commentaire a été minimisé par le modérateur sur le site
Comment puis-je modifier cela pour que les données extraites commencent toujours sur la ligne du haut ? Si j'exécute ce code deux fois, il ajoute les données à la fin de mes données précédentes (à partir de la première exécution de la macro).
Ce commentaire a été minimisé par le modérateur sur le site
Modifiez cette ligne : RowofCopySheet = 2 en RowofCopySheet = 1
Ce commentaire a été minimisé par le modérateur sur le site
HI, j'ai plusieurs dossiers différents de fichiers Excel (feuille unique) avec protection par mot de passe. Je veux que la fin de la journée combine toutes les données dans un seul fichier maître. Chaque fois que je dois entrer le mot de passe et ouvrir le fichier et copier-coller dans le fichier maître. Veuillez m'aider avec le code VBA pour cela s'il vous plaît.
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés