XL 2019 recapituler les fichiers excel d'un répertoire en une feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rmjunivers

XLDnaute Junior
Bonjour la famille,

je reçcois les rapports à travers les fichiers Excel nommés différemment sous le même format avec pour chacun un onglet détails je souhaite compiler automatique la feuille détais de chaque fichier dans un fichier Excel unique pour exploitation.

je joins à cette requêtes 2 exemples de rapports excel des journées du 18/04 et 19/04/2026
 

Pièces jointes

Bonjour,
Bonjour la famille,

je reçcois les rapports à travers les fichiers Excel nommés différemment sous le même format avec pour chacun un onglet détails je souhaite compiler automatique la feuille détais de chaque fichier dans un fichier Excel unique pour exploitation.

je joins à cette requêtes 2 exemples de rapports excel des journées du 18/04 et 19/04/2026
7400 lignes pour 1 jour = 1.628.000 pour 220 jours travaillés = dépassement de capacité Excel

What else
 
Bonjour à tous,

Avec Power Query, nom du dossier à modifier.

PowerQuery:
Table.Skip(List.Accumulate(List.Buffer(Folder.Files("C:\New folder")[Content]), #table({},{{}}),(s,c)=> s & Table.PromoteHeaders(Excel.Workbook(c){1}[Data])))

Bonne journée à tous
 
Re,

Perso, j'aurais utiliser ceci
VB:
let
    // 1. Spécifier le chemin du dossier
    SourceFolder = "C:\Temp\",
    // 2. Charger la liste des fichiers dans ce dossier
    Source = Folder.Files(SourceFolder),
    // 3. Filtrer les fichiers qui contiennent "rapport" et finissent par .xlsx (sans casse sensible)
    FichiersFiltres = Table.SelectRows(Source, each Text.Contains(Text.Lower([Name]), "rapport") and Text.EndsWith(Text.Lower([Name]), ".xlsx")),
    // 4. Ajouter une colonne avec le contenu Excel (liste des feuilles et tables)
    AjouterExcelContent = Table.AddColumn(FichiersFiltres, "ExcelData", each Excel.Workbook(File.Contents([Folder Path] & [Name]), true)),
    // 5. Extraire la feuille nommée exactement "Détails" de chaque fichier
    ExtraireDetails = Table.AddColumn(AjouterExcelContent, "Détail_Table",
        each
            let
                Feuilles = [ExcelData],
                // Rechercher la feuille "Détails" sensible aux accents
                DetailsSheet = Table.SelectRows(Feuilles, each [Name] = "Détails")
            in
                if Table.RowCount(DetailsSheet) = 0 then
                    #table({}, {})  // Tableau vide pour éviter l'erreur
                else
                    DetailsSheet{0}[Data]
    ),
    // 6. Supprimer la colonne ExcelData car inutile ensuite
    Nettoyer = Table.RemoveColumns(ExtraireDetails, {"ExcelData"}),
    // 7. Combiner les tables "Détail_Table" en une seule
    TablesValides = Table.SelectRows(Nettoyer, each (try Table.RowCount([Détail_Table]) otherwise 0) >= 0),

    CombinerTables = Table.Combine(TablesValides[Détail_Table])
in
    CombinerTables

@alega78, ce que tu as donné ne semble pas fonctionner 🤔
1776861855290.png
 
Re,

Perso, j'aurais utiliser ceci
VB:
let
    // 1. Spécifier le chemin du dossier
    SourceFolder = "C:\Temp\",
    // 2. Charger la liste des fichiers dans ce dossier
    Source = Folder.Files(SourceFolder),
    // 3. Filtrer les fichiers qui contiennent "rapport" et finissent par .xlsx (sans casse sensible)
    FichiersFiltres = Table.SelectRows(Source, each Text.Contains(Text.Lower([Name]), "rapport") and Text.EndsWith(Text.Lower([Name]), ".xlsx")),
    // 4. Ajouter une colonne avec le contenu Excel (liste des feuilles et tables)
    AjouterExcelContent = Table.AddColumn(FichiersFiltres, "ExcelData", each Excel.Workbook(File.Contents([Folder Path] & [Name]), true)),
    // 5. Extraire la feuille nommée exactement "Détails" de chaque fichier
    ExtraireDetails = Table.AddColumn(AjouterExcelContent, "Détail_Table",
        each
            let
                Feuilles = [ExcelData],
                // Rechercher la feuille "Détails" sensible aux accents
                DetailsSheet = Table.SelectRows(Feuilles, each [Name] = "Détails")
            in
                if Table.RowCount(DetailsSheet) = 0 then
                    #table({}, {})  // Tableau vide pour éviter l'erreur
                else
                    DetailsSheet{0}[Data]
    ),
    // 6. Supprimer la colonne ExcelData car inutile ensuite
    Nettoyer = Table.RemoveColumns(ExtraireDetails, {"ExcelData"}),
    // 7. Combiner les tables "Détail_Table" en une seule
    TablesValides = Table.SelectRows(Nettoyer, each (try Table.RowCount([Détail_Table]) otherwise 0) >= 0),

    CombinerTables = Table.Combine(TablesValides[Détail_Table])
in
    CombinerTables

@alega78, ce que tu as donné ne semble pas fonctionner 🤔
Regarde la pièce jointe 1229708
Bonsoir,
Avec le code d' @alexga78, l'import se fait correctement (j'ai rajouté une colonne transformée en date uniquement, et les deux fichiers sont bien présents...)

1776874716000.png



Tu as bien modifié le répertoire?
Petit bémol, si un des fichiers "Source" est ouvert, on obtient une erreur (tout comme dans ton code)
Pour ton code, il suffit de modifier ainsi l'étape "FichiersFiltres"

PowerQuery:
FichiersFiltres = Table.SelectRows(Source, each Text.Contains(Text.Lower([Name]), "rapport") and Text.EndsWith(Text.Lower([Name]), ".xlsx") and [Attributes][Hidden] = false)

Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Z
Réponses
2
Affichages
17 K
zelmasmoudi
Z
N
  • Question Question
Réponses
5
Affichages
3 K
G
Réponses
3
Affichages
3 K
Gagougnia
G
K
Réponses
19
Affichages
5 K
K
Retour