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