Regrouper plusieurs feuilles Excel en une seule
Tu empiles les lignes de tous tes onglets dans une seule feuille avec Power Query, une formule ou une macro, selon ta version d’Excel et la façon dont le regroupement doit suivre tes onglets.
Regrouper plusieurs feuilles Excel en une seule se fait sans code, puisque Power Query empile leurs lignes sous un même en-tête et se remet à jour en un clic. Dans Microsoft 365 ou Excel 2024, la fonction ASSEMB.V fait de même en une formule. Pour tout empiler d’un coup sans rien préparer, notre macro VBA crée la feuille regroupée.
Comment rassembler plusieurs feuilles Excel en une seule
Pour rassembler plusieurs feuilles Excel en une seule sans tout recopier à la main, tu peux laisser Power Query, la fonction ASSEMB.V ou notre macro empiler leurs lignes à ta place. Ce qui les départage, c’est surtout ta version d’Excel et la façon dont le regroupement doit suivre les changements de tes onglets. Le tableau les compare au copier-coller et à l’outil Consolider, sur un classeur dont chaque onglet porte les mêmes colonnes.
| Méthode | Versions d’Excel | Mise à jour | Onglet d’origine | Colonnes dans un autre ordre |
|---|---|---|---|---|
| Power Query | Excel 2016 et suivants sur Windows, Microsoft 365 | En un clic sur Actualiser tout | Oui, par le nom de chaque tableau | Remises à leur place par leur nom |
| ASSEMB.V | Microsoft 365, Excel 2024 | Immédiate, à chaque calcul | Non | Prises dans l’ordre, CHOISIRCOLS les replace |
| Macro de cette page | Excel de bureau, macros activées | En relançant la macro | Oui, colonne Feuille source | Prises dans l’ordre, à replacer avant |
| Copier-coller | Toutes | À refaire à la main | À écrire à la main | À replacer à la main |
| Consolider | Excel de bureau | Sans objet | Non | N’empile pas, additionne |
Si tu as Microsoft 365 ou Excel 2024, ASSEMB.V est la plus rapide à poser, et son résultat suit chaque saisie. Power Query convient mieux à un classeur qui reçoit de nouveaux onglets au fil des mois, puisque la requête trouve seule chaque nouveau tableau. La macro, elle, dépanne sur une version plus ancienne, ou quand tu veux une copie figée en valeurs à envoyer telle quelle. Quant au copier-coller, il reste raisonnable pour deux ou trois onglets qui ne bougeront plus, puisqu’il faut coller chaque bloc sous le précédent et tout refaire au moindre changement.
Fusionner des onglets Excel automatiquement avec Power Query
Power Query fusionne tes onglets en une seule table que tu charges dans une feuille, puis refait ce travail à chaque actualisation, sans que tu touches à la requête. Il lit pour cela la liste des tableaux du classeur avec la fonction Excel.CurrentWorkbook et les empile, en gardant en face de chaque ligne le nom du tableau d’où elle vient. Les étapes qui suivent décrivent Excel pour Microsoft 365, et dans Excel 2016, les mêmes menus peuvent porter d’autres noms.
Transformer chaque feuille en tableau nommé avec Ctrl+L
Pour que Power Query trouve tes feuilles, transforme les données de chacune en tableau avec Ctrl+L, puisque la requête lit la liste des tableaux du classeur. Donne ensuite à chaque tableau le nom de sa feuille, par exemple Paris, car c’est ce nom qui désignera l’onglet d’origine de chaque ligne dans le résultat.
- 01
Clique dans les données du premier onglet, puis appuie sur Ctrl+L, ou choisis Tableau dans l’onglet Insertion.

Ctrl+L ouvre cette boîte, qui reconnaît seule la plage des données. - 02
Laisse cochée la case « Mon tableau comporte des en-têtes », puis valide par OK.
- 03
Dans l’onglet Création de tableau, remplace le nom proposé dans la case Nom du tableau par le nom de l’onglet, par exemple Paris.
- 04
Refais ces trois gestes sur chacun des onglets à regrouper.
Empiler les tableaux du classeur avec Excel.CurrentWorkbook
Pour empiler les tableaux du classeur, une requête vide appelle Excel.CurrentWorkbook, qui renvoie une ligne par tableau avec deux colonnes. Content contient le tableau lui-même, et Name porte son nom, deux intitulés que Power Query garde en anglais, même dans un Excel en français. En dépliant Content, la requête met ensuite les tableaux bout à bout, et la colonne Name reste en face de chacune de leurs lignes.
- 01
Dans l’onglet Données, ouvre Obtenir des données, puis À partir d’autres sources, et choisis Requête vide. L’éditeur Power Query s’ouvre.

Le menu Obtenir des données de l’onglet Données, d’où partent la requête vide et l’éditeur Power Query. Sa première ligne, Get Data (Aperçu), ne sert pas ici. - 02
Dans la barre de formule de l’éditeur, remplace ce qui s’y trouve par = Excel.CurrentWorkbook() puis appuie sur Entrée pour afficher la liste des tableaux du classeur. Si la barre de formule manque, coche Barre de formule dans l’onglet Affichage de l’éditeur.

Après cette étape, une ligne par tableau du classeur. La double flèche de l’étape 4 est à droite de l’en-tête Content. - 03
Ouvre le filtre de la colonne Name, choisis Filtres textuels puis N’est pas égal à, tape Regroupement et valide. C’est le nom que portera le résultat, et la sous-partie « Pourquoi le regroupement se remplit de doublons » explique ce qui arrive sans ce filtre.
- 04
Clique sur la double flèche à droite de l’en-tête Content, décoche « Utiliser le nom de la colonne d’origine comme préfixe », puis valide par OK. Les lignes de tous les tableaux s’empilent.
- 05
Dans le volet Paramètres d’une requête, à droite, renomme la requête Regroupement.
- 06
Renomme la colonne Name en Onglet, place-la en premier et donne le type Date à la colonne des dates, comme l’explique la sous-partie suivante.
- 07
Dans l’onglet Accueil, ouvre la flèche de Fermer et charger et choisis Fermer et charger dans. Dans la boîte Importation de données, choisis Tableau et Nouvelle feuille de calcul, puis valide. Le résultat arrive dans une nouvelle feuille.
À l’étape 7, c’est la commande Fermer et charger dans qui te laisse choisir où arrive le résultat. Un simple clic sur Fermer et charger suit en effet les options de chargement d’Excel, et si elles sont réglées pour ne créer qu’une connexion, aucune feuille n’apparaît.
Si tu préfères coller du code plutôt que cliquer, les mêmes étapes tiennent dans la requête ci-dessous. Ouvre une requête vide, clique sur Éditeur avancé dans l’onglet Accueil de l’éditeur, puis colle la requête entière avant d’adapter les noms des colonnes aux tiens. Donne-lui ensuite le nom Regroupement, comme à l’étape 5, sans quoi son filtre n’écarte pas le résultat, et charge-la comme à l’étape 7.
letSource = Excel.CurrentWorkbook(),#"Lignes filtrées" = Table.SelectRows(Source, each [Name] <> "Regroupement"),#"Content développé" = Table.ExpandTableColumn(#"Lignes filtrées", "Content", {"Date", "Client", "Montant"}, {"Date", "Client", "Montant"}),#"Colonnes renommées" = Table.RenameColumns(#"Content développé", {{"Name", "Onglet"}}),#"Colonnes permutées" = Table.ReorderColumns(#"Colonnes renommées", {"Onglet", "Date", "Client", "Montant"}),#"Type modifié" = Table.TransformColumnTypes(#"Colonnes permutées", {{"Onglet", type text}, {"Date", type date}, {"Client", type text}, {"Montant", type number}})in#"Type modifié"
Garder le nom de l’onglet d’origine de chaque ligne
Pour garder le nom de l’onglet d’origine de chaque ligne, il suffit de renommer la colonne Name, puisque chaque tableau a reçu le nom de son onglet à sa création. Name porte en effet le nom du tableau d’où vient la ligne, et non celui de la feuille. Un tableau resté sous le nom proposé par Excel, Tableau1 par exemple, apparaîtrait donc sous ce nom dans le résultat.
À l’étape 6, double-clique sur l’en-tête Name pour l’appeler Onglet, puis fais glisser la colonne en première position. Profites-en pour donner le type Date à la colonne des dates, avec l’icône placée à gauche de son en-tête, faute de quoi elles peuvent arriver en nombres, 46027 au lieu du 05/01/2026. Si le résultat est déjà chargé, rouvre d’abord la requête comme l’explique la sous-partie suivante, puis fais ces gestes.

Pourquoi le regroupement se remplit de doublons
Le regroupement se remplit de doublons dès que son propre tableau entre dans la requête, puisque le résultat chargé est lui aussi un tableau du classeur, qu’Excel.CurrentWorkbook trouve comme les autres. Sans le filtre posé sur son nom à l’étape 3, le résultat s’empile donc avec les onglets à chaque actualisation. Avec sept lignes à regrouper, par exemple, chaque actualisation ajoute au regroupement les lignes qu’il contient déjà, si bien que le tableau grossit de sept lignes à chaque fois.
Une plage nommée figure aussi dans la liste, au même titre que les tableaux, et elle peut y ajouter une ligne vide à son nom. Écarte ce qui n’est pas à regrouper par un second filtre sur Name.
Un tableau posé sur un onglet masqué est regroupé lui aussi.
Si ta requête est déjà chargée sans ce filtre, rouvre-la en choisissant Lancer l’éditeur Power Query dans le menu Obtenir des données de l’onglet Données. Double-clique ensuite sur la requête dans le volet de gauche, puisqu’un simple clic ne fait que la sélectionner. Dans la liste Étapes appliquées, sélectionne l’étape Source, pose le filtre sur Name, puis accepte d’insérer l’étape quand l’éditeur te le propose.
Actualiser la requête après un ajout de lignes ou d’onglets
Après un ajout de lignes sur un onglet, actualise la requête avec le bouton Actualiser tout de l’onglet Données ou avec Ctrl+Alt+F5, et le regroupement les reprend. Encore faut-il écrire ces lignes juste sous un tableau, qui s’agrandit alors pour les prendre. Un nouvel onglet entre de la même façon dans le résultat, dès qu’il porte un tableau aux mêmes en-têtes que les autres.
Et si tu oublies souvent d’actualiser, demande à Excel de refaire le regroupement à chaque ouverture du classeur. Sélectionne une cellule du résultat, ouvre la flèche d’Actualiser tout et choisis Propriétés de connexion, puis coche « Actualiser les données lors de l’ouverture du fichier » dans l’onglet Utilisation de la boîte qui s’ouvre.
Combiner plusieurs feuilles Excel avec la fonction ASSEMB.V
Pour combiner plusieurs feuilles Excel sans passer par Power Query, la fonction ASSEMB.V, disponible dans Microsoft 365 et Excel 2024, met leurs plages bout à bout en une seule formule. Écris-la sur un onglet de synthèse, en séparant par des points-virgules les plages des différents onglets.
=ASSEMB.V(Paris!A2:C3;Lyon!A2:C4;Nantes!A2:C3)Empile les deux lignes de Paris, les trois de Lyon et les deux de Nantes, soit sept lignes.
Le résultat déborde sur les cellules voisines et se recalcule dès qu’une valeur change sur un des onglets, mais il ne reprend pas leurs formats. Tes dates y arrivent donc en nombres, 46027 au lieu du 05/01/2026, et il suffit de donner un format de date à toute la première colonne du résultat, lignes à venir comprises.
Une plage fixe comme Lyon!A2:C4 a un autre défaut, puisqu’elle ne voit pas la ligne que tu écris juste en dessous, en ligne 5. La variante suivante lit donc une zone plus large, qui prend aussi les lignes à venir.
Regrouper tous les onglets d’un coup avec une référence 3D
Pour regrouper tous les onglets d’un coup, donne à ASSEMB.V une seule référence 3D, qui vise la même plage sur tous les onglets rangés entre deux onglets. Paris:Nantes!A2:C100 lit ainsi Paris, Lyon et Nantes jusqu’à la ligne 100, ce qui laisse de la place aux lignes à venir. Avec cette seule référence, pourtant, ASSEMB.V renvoie aussi les lignes vides sous forme de zéros, soit 297 lignes (99 par onglet) quand seules 7 sont remplies. FILTRE les écarte en ne gardant que les lignes dont la colonne A est remplie.
=FILTRE(ASSEMB.V(Paris:Nantes!A2:C100);ASSEMB.V(Paris:Nantes!A2:A100)<>"")Une ligne ajoutée à un onglet, jusqu’à la ligne 100, entre toute seule dans le résultat.
Pour garder les en-têtes au-dessus du résultat, place la ligne 1 d’un des onglets en premier argument d’ASSEMB.V. Les en-têtes de Paris coiffent alors les sept lignes empilées, comme dans la formule ci-dessous.
=ASSEMB.V(Paris!A1:C1;FILTRE(ASSEMB.V(Paris:Nantes!A2:C100);ASSEMB.V(Paris:Nantes!A2:A100)<>""))Un onglet glissé entre Paris et Nantes entre dans le résultat, et un onglet placé après Nantes en sort.
Range l’onglet du résultat après Nantes, puisqu’un onglet placé entre les deux entre lui-même dans la référence 3D. La formule relit alors ses propres cellules, et Excel signale une référence circulaire.
Si tes onglets portent des tableaux du même nom, comme le demande la méthode Power Query, la référence 3D peut renvoyer l’erreur #VALEUR!. L’erreur vient dès qu’un tableau porte le nom du premier onglet de la référence. Passe alors directement les noms des tableaux à ASSEMB.V, comme dans la formule ci-dessous, qui suit aussi les lignes ajoutées aux tableaux.
=ASSEMB.V(Paris;Lyon;Nantes)Empile les lignes des tableaux nommés Paris, Lyon et Nantes, sans leurs en-têtes.
Passer par une macro VBA pour fusionner plusieurs feuilles Excel en une seule
Notre macro Consolider_feuilles_classeur, dont tu copies le code depuis cette page, fusionne d’un clic toutes les feuilles du classeur actif en une seule, sans tableau ni formule à préparer. Elle crée une feuille Consolidation et y recopie, les unes sous les autres, les lignes de tous les onglets, en notant en face de chacune l’onglet d’où elle vient.
Recopier tous les onglets dans une feuille Consolidation
Elle crée la feuille Consolidation à la fin du classeur, ou vide celle qui existe déjà.
Elle reprend les en-têtes du premier onglet rempli, précédés d’une colonne Feuille source.
Elle écrit en face de chaque ligne le nom de l’onglet d’où elle vient.
Elle recopie chaque onglet en un seul bloc, si bien qu’elle reste rapide sur plusieurs milliers de lignes et empile 6 000 lignes d’un coup.
Elle saute les onglets vides et ne modifie pas les onglets de départ.
Elle annonce à la fin le nombre d’onglets et de lignes regroupés.
Trois onglets d’agence avant et après la macro
Avant la macro, les agences de Lyon, de Paris et de Nantes ont chacune leur onglet, avec deux clients et leurs montants sous les en-têtes Client et Montant. Après, la feuille Consolidation empile ces six lignes sous les mêmes en-têtes, précédés d’une colonne Feuille source qui nomme l’onglet de chacune.
| A | B | |
|---|---|---|
| 1 | Client | Montant |
| 2 | Dupont | 10 |
| 3 | Martin | 20 |
| A | B | |
|---|---|---|
| 1 | Client | Montant |
| 2 | Moreau | 15 |
| 3 | Laurent | 25 |
| A | B | |
|---|---|---|
| 1 | Client | Montant |
| 2 | Roux | 12 |
| 3 | David | 22 |
| A | B | C | |
|---|---|---|---|
| 1 | Feuille source | Client | Montant |
| 2 | Lyon | Dupont | 10 |
| 3 | Lyon | Martin | 20 |
| 4 | Paris | Moreau | 15 |
| 5 | Paris | Laurent | 25 |
| 6 | Nantes | Roux | 12 |
| 7 | Nantes | David | 22 |
Installer la macro qui fusionne les feuilles
Ouvre l’éditeur VBA avec Alt+F11 et colle le code dans un module neuf (menu Insertion, Module). Reviens ensuite au classeur à regrouper et lance Consolider_feuilles_classeur avec Alt+F8.
Connaître les limites de la macro avant de la lancer
Elle empile tous les onglets du classeur, y compris les onglets masqués. Pour en laisser de côté, comme un onglet de synthèse fait avec ASSEMB.V ou Power Query, enregistre une copie du classeur, supprimes-y ces onglets, puis lance la macro sur cette copie.
Elle prend les colonnes dans leur ordre, sans lire les en-têtes des autres onglets. Une colonne déplacée sur un onglet envoie ses valeurs sous le mauvais en-tête.
Elle prend la première ligne remplie de chaque onglet pour ses en-têtes. Un titre posé au-dessus d’un tableau fait entrer la ligne vide et les en-têtes de cet onglet parmi les données.
Une cellule mise en forme loin sous les données ajoute des lignes vides au nom de l’onglet.
Les formules arrivent en valeurs, et les formats de nombre se perdent. Un montant en euros n’a plus son symbole et 25 % devient 0,25, alors que les dates restent affichées en dates.
Un texte qui ressemble à un nombre ou à une date, comme le code postal 01000, reste un texte, puisque la macro lui rend l’apostrophe qui le garde tel quel.
Une feuille Consolidation déjà présente est vidée puis réécrite, y compris ce que tu y as ajouté à la main, et Ctrl+Z ne la ramène pas.
Le résultat ne suit pas les onglets, et une modification n’y entre qu’en relançant la macro.
Regrouper des feuilles dont les colonnes ne sont pas dans le même ordre
Pour regrouper des feuilles dont les colonnes ne sont pas dans le même ordre, seul Power Query s’en charge sans aide, puisqu’il range chaque valeur sous l’en-tête qui porte le même nom. ASSEMB.V et la macro prennent au contraire les colonnes dans l’ordre où elles se trouvent sur chaque onglet. Si l’onglet Nantes commence par Client puis Date, Power Query remet donc chaque valeur à sa place, alors qu’ASSEMB.V range les noms des clients sous Date.
Avec ASSEMB.V, CHOISIRCOLS répare ce décalage sans toucher à l’onglet, en reprenant ses colonnes dans l’ordre voulu. Il suffit de l’appliquer à la seule plage de Nantes, comme dans la formule ci-dessous.
=ASSEMB.V(Paris!A2:C3;Lyon!A2:C4;CHOISIRCOLS(Nantes!A2:C3;2;1;3))Prend sur Nantes la colonne 2 (Date), puis la 1 (Client), puis la 3 (Montant).
La macro, elle, ne replace rien, si bien que tu remets les colonnes dans le même ordre sur chaque onglet avant de la lancer. Sélectionne la colonne à déplacer, coupe-la avec Ctrl+X, puis fais un clic droit sur l’en-tête de la colonne qui doit la suivre et insère les cellules coupées depuis ce menu.
Power Query a pourtant son propre piège, puisqu’un en-tête écrit autrement, comme Montant HT au lieu de Montant, laisse des cases vides dans son résultat sans le moindre message d’erreur. Harmonise donc les en-têtes de tous les onglets avant d’actualiser, pour que chaque valeur retrouve sa colonne.
Pourquoi l’outil Consolider n’empile pas plusieurs feuilles Excel
L’outil Consolider de l’onglet Données n’empile pas plusieurs feuilles Excel, puisqu’il résume leurs plages avec une fonction, Somme par défaut, au lieu de mettre leurs lignes bout à bout. Dans sa boîte, tu choisis d’ailleurs cette fonction avant même d’ajouter les plages à résumer.

Lancé sur les trois onglets de l’exemple, avec les cases Ligne du haut et Colonne de gauche cochées, Consolider rend six clients pour sept ventes. Les deux ventes de Dupont, 120 et 75, s’y fondent en effet en une seule ligne à 195. Sans ces cases, l’outil additionne les cellules de même position, si bien que les montants des premières lignes des trois onglets donnent 410, et ceux des deuxièmes lignes 270.
C’est donc l’outil d’un total par client ou par mois, et non celui d’une liste complète de tes ventes. Si c’est justement un tel total que tu cherches, la fiche Consolidation du lexique décrit ses réglages.
Quand les feuilles à regrouper sont dans plusieurs fichiers Excel
Quand les feuilles à regrouper sont dans plusieurs fichiers Excel, les méthodes de cette page ne suffisent plus, puisqu’elles travaillent dans un seul classeur. Deux chemins permettent pourtant de réunir ces feuilles, selon le nombre de fichiers et l’endroit où ils se trouvent. Pour des fichiers rangés dans un même dossier, comme les exports mensuels d’un logiciel, Power Query propose la commande À partir d’un dossier, que la leçon Power Query Excel détaille pas à pas. Pour empiler tout le dossier d’un clic, même quand les feuilles ne portent pas le même nom d’un fichier à l’autre, la page Fusionner plusieurs fichiers Excel en un seul donne une autre macro.
Pour deux ou trois fichiers seulement, le plus simple reste de rapatrier leurs onglets dans un seul classeur avec la commande Déplacer ou copier, que décrit cette même page, puis d’y appliquer l’une des méthodes ci-dessus.
D’autres macros utiles
Tu as peut-être encore une question
Non, les données des onglets d’origine restent intactes, puisque Power Query et la fonction ASSEMB.V se contentent de les lire pour bâtir leur résultat ailleurs, et que la macro recopie leurs lignes dans une feuille Consolidation à part, sans toucher aux feuilles qu’elle empile. La méthode Power Query de cette page demande seulement de mettre d’abord chaque plage sous forme de tableau, avec Ctrl+L.
Le regroupement reste à jour tout seul avec la fonction ASSEMB.V, qui se recalcule dès qu’une valeur change, alors qu’une requête Power Query se met à jour quand tu cliques sur Actualiser tout dans l’onglet Données et que la macro doit être relancée pour réécrire sa feuille Consolidation. Avec une plage large et FILTRE, ASSEMB.V reprend même les lignes ajoutées sous les données.
La macro de cette page ne tourne pas dans Excel pour le web, puisque Microsoft indique que la version en ligne ne permet ni de créer, ni d’exécuter, ni de modifier une macro VBA, si bien que le plus sûr est d’ouvrir ton classeur dans Excel de bureau. Pour la version en ligne, Microsoft conseille Power Query ou les formules à qui n’y trouve pas l’outil Consolider.
Pour regrouper plusieurs tableaux Excel en un seul, passe leurs noms à la fonction ASSEMB.V, par exemple =ASSEMB.V(Paris;Lyon;Nantes), ou laisse Power Query les lister avec Excel.CurrentWorkbook, une fonction qui lit justement tous les tableaux du classeur, qu’ils soient sur la même feuille ou sur des onglets différents. Une ligne ajoutée à un tableau entre dans le résultat, aussitôt avec ASSEMB.V et à l’actualisation avec Power Query.
Pour aller plus loin
Tout ce dont tu as besoin pour faire tourner tes macros et progresser sur Excel se trouve ici.

Télécharge notre cours Excel complet en PDF
Télécharger
Ton cours Excel gratuit
3 chapitres pour apprendre les bases et découvrir l'automatisation.
Voir le cours
Entraîne-toi sur nos 63 exercices corrigés
S’entraîner
Les macros Excel et le VBA expliqués simplement
Lire le guide
Activer les macros quand Excel les bloque
Voir comment