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.
Pour regrouper plusieurs feuilles Excel en une seule, trois méthodes empilent leurs lignes sous un même en-tête. Power Query le fait sans code et se remet à jour en un clic, la fonction ASSEMB.V le fait en une formule dans Microsoft 365 ou Excel 2024, et notre macro VBA le fait d’un coup, sans rien préparer.
Quelle méthode choisir pour regrouper tes feuilles
Le choix dépend surtout de ta version d’Excel et de la façon dont le regroupement doit suivre les changements de tes onglets, deux points sur lesquels les méthodes diffèrent. Le tableau les compare 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 |
Avec Microsoft 365 ou Excel 2024, ASSEMB.V est la plus rapide à poser et suit chaque saisie. Power Query convient mieux à un classeur qui reçoit de nouveaux onglets, 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.
Regrouper les feuilles avec Power Query
Power Query lit la liste des tableaux du classeur avec la fonction Excel.CurrentWorkbook, puis les empile en une seule table que tu charges dans une feuille, et où chaque ligne garde le nom du tableau d’où elle vient. Les étapes qui suivent décrivent Excel pour Microsoft 365, mais dans Excel 2016, les mêmes menus peuvent porter d’autres noms.
Transformer chaque onglet en tableau
La requête lit les tableaux du classeur, si bien que chaque onglet à regrouper doit d’abord devenir un tableau. Le nom de ce tableau devient celui de l’onglet d’origine dans le résultat, d’où l’intérêt de lui donner le nom de sa feuille.
- 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.
Combiner les tableaux avec Excel.CurrentWorkbook
Excel.CurrentWorkbook renvoie une ligne par tableau du classeur, avec une colonne Content, qui contient le tableau, et une colonne Name, qui porte son nom (Power Query garde ces noms en anglais). En dépliant Content, la requête met ces 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 « Éviter que le tableau regroupé se compte lui-même » dit pourquoi il faut l’écarter.
- 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, la commande Fermer et charger dans te laisse choisir où arrive le résultat. Un simple clic sur Fermer et charger suit, lui, les options de chargement d’Excel, qui peuvent être réglées pour ne créer qu’une connexion, sans aucune feuille.
Les mêmes étapes tiennent dans la requête ci-dessous, que tu peux coller entière dans l’Éditeur avancé d’une requête vide (onglet Accueil de l’éditeur) avant d’adapter les noms des colonnes aux tiens. Donne-lui ensuite le nom Regroupement (étape 5), sans quoi son filtre n’écarte pas le résultat, puis 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
La colonne Name porte le nom du tableau d’où vient chaque ligne, et non celui de la feuille. Puisque chaque tableau a reçu le nom de son onglet à sa création, il suffit de la renommer pour qu’elle se lise comme l’onglet d’origine.
À l’étape 6, double-clique sur l’en-tête Name pour l’appeler Onglet, puis fais glisser la colonne en première position. Choisis aussi le type Date pour la colonne des dates, avec l’icône placée à gauche de son en-tête. Sans ce type, les dates peuvent arriver en nombres, 46027 au lieu du 05/01/2026. Si le résultat est déjà chargé, fais ces gestes après avoir rouvert la requête, comme l’explique la sous-partie suivante.

Éviter que le tableau regroupé se compte lui-même
Le résultat chargé est lui aussi un tableau du classeur, qu’Excel.CurrentWorkbook trouve comme les autres, d’où le filtre sur son nom posé à l’étape 3. Sans ce filtre, le résultat s’empile avec les onglets à chaque actualisation. Sur sept lignes, par exemple, chaque actualisation ajoute au regroupement les lignes qu’il contient déjà, et 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 une plage nommée 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.
Pour corriger une requête déjà chargée, ouvre le menu Obtenir des données de l’onglet Données et choisis Lancer l’éditeur Power Query. 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 le propose.
Mettre à jour après un ajout de lignes
Le regroupement reprend les lignes ajoutées à la prochaine actualisation, que tu lances avec le bouton Actualiser tout de l’onglet Données ou avec Ctrl+Alt+F5. Encore faut-il les écrire juste sous un tableau, qui s’agrandit alors pour les prendre. Un nouvel onglet entre de la même façon, dès qu’il porte un tableau aux mêmes en-têtes.
Pour que le regroupement se refasse à 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. Dans l’onglet Utilisation de la boîte qui s’ouvre, coche « Actualiser les données lors de l’ouverture du fichier ».
Empiler les feuilles avec la fonction ASSEMB.V
La fonction ASSEMB.V, disponible dans Microsoft 365 et Excel 2024, met des plages bout à bout en une seule formule. Écris-la sur un onglet de synthèse, en séparant les plages par des points-virgules.
=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, mais il ne reprend pas les formats. Les dates y arrivent 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 ne voit pas non plus la ligne écrite juste en dessous. La variante suivante lit donc une zone plus large, qui prend aussi les lignes à venir.
Lire tous les onglets d’un coup avec une référence 3D
Une référence 3D 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. Avec cette seule référence, ASSEMB.V renvoie alors 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.
=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. Placé entre les deux, il entre lui-même dans la référence 3D, et la formule relit ses propres cellules. Excel signale alors 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.
Fusionner toutes les feuilles en un clic avec une macro VBA
La macro Consolider_feuilles_classeur, dont tu copies le code depuis cette page, fait le regroupement 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 du classeur actif.
Ce que fait la macro
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, ce qui reste rapide sur plusieurs milliers de lignes. Elle empile ainsi 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.
Avant et après
La macro réunit ici trois onglets d’agence, Lyon, Paris et Nantes, dans la feuille Consolidation.
| 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
Ses limites
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 nombre saisi en texte redevient un nombre, si bien qu’un code postal comme 01000 perd son zéro.
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.
Quand les colonnes ne sont pas dans le même ordre
Power Query range chaque valeur sous l’en-tête qui porte le même nom, quel que soit l’ordre des colonnes sur l’onglet. ASSEMB.V et la macro prennent au contraire les colonnes dans l’ordre où elles sont. Si l’onglet Nantes commence par Client puis Date, Power Query remet 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 remettant ses colonnes dans l’ordre voulu.
=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).
Pour la macro, 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, lui, laisse des cases vides dans son résultat, sans message d’erreur, quand un en-tête est écrit autrement, comme Montant HT au lieu de Montant. Harmonise les en-têtes avant d’actualiser, pour que chaque valeur retrouve sa colonne.
Pourquoi l’outil Consolider ne suffit pas
Dans l’onglet Données, la commande Consolider ne met pas les lignes bout à bout, puisqu’elle résume plusieurs plages avec une fonction, Somme par défaut.

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, deviennent 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, pas celui d’une liste complète. Si c’est un tel total que tu cherches, la fiche Consolidation du lexique décrit ses réglages.
Et si les feuilles sont dans plusieurs fichiers
Les méthodes de cette page travaillent dans un seul classeur, mais deux chemins permettent de réunir des feuilles réparties dans plusieurs fichiers. Pour des fichiers rangés dans un même dossier, Power Query propose la commande À partir d’un dossier, que la leçon Power Query Excel détaille pas à pas.
Pour deux ou trois fichiers, le plus simple reste de rapatrier leurs onglets dans un seul classeur, puis d’y appliquer l’une des méthodes ci-dessus. Ouvre tous les classeurs concernés, fais un clic droit sur l’onglet à rapatrier et choisis Déplacer ou copier. Choisis le classeur de destination dans la liste Dans le classeur, et coche Créer une copie si l’onglet doit aussi rester dans son fichier.
Tu as peut-être encore une question
Pour copier plusieurs feuilles Excel dans une seule feuille, le plus sûr est de laisser Power Query, la fonction ASSEMB.V (Microsoft 365 et Excel 2024) ou la macro de cette page empiler les lignes à ta place, plutôt que de coller chaque bloc sous le précédent et de tout refaire au moindre changement. Le copier-coller reste raisonnable pour deux ou trois onglets qui ne bougeront plus.
Pour fusionner plusieurs fichiers Excel en un seul, range-les dans un même dossier et utilise la commande À partir d’un dossier de Power Query, ou rapatrie d’abord leurs onglets dans un seul classeur avec Déplacer ou copier, puis applique l’une des méthodes de cette page aux onglets réunis. La partie « Et si les feuilles sont dans plusieurs fichiers », plus haut, résume ces deux chemins.
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.
Consolider des feuilles revient à les résumer, puisque l’outil Consolider d’Excel additionne les valeurs qui partagent la même étiquette ou la même position, alors que regrouper des feuilles revient à empiler toutes leurs lignes les unes sous les autres, sans rien additionner ni fusionner. Avec Consolider, deux ventes d’un même client finissent ainsi sur une seule ligne.
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