Un classeur de 5, 50 ou 500 feuilles peut être divisé en feuilles individuelles. .xlsx fichiers dans un seul flux Power Automate. PDF4me Excel - Feuilles de calcul séparées renvoie un tableau avec un fichier par feuille ; Appliquer à chaque La boucle s'exécute et écrit les données vers Dropbox, SharePoint, OneDrive ou Dataverse. Ce guide décrit précisément le processus illustré dans les captures d'écran : une boucle à 5 onglets. Separate.xlsx dans Dropbox devient Sheet1.xlsx à travers Sheet5.xlsx dans un dossier de sortie. Flux total : 4 actions, zéro code, exécution de bout en bout en ~9 secondes.
Aperçu du flux
1. Manual trigger
Manually trigger a flow. Swap for any trigger that produces a workbook.
PDF4me action. Splits the 5-sheet workbook into 5 single-sheet XLSXes.
4. Apply to each → Create file
Loop outputDocuments. Each iteration writes one sheet as its own .xlsx to Dropbox.
La version courte
Un déclencheur manuel lance le flux. Dropbox Récupérer le contenu du fichier à l'aide du chemin d'accès lectures Separate.xlsx (5 feuilles, chacune avec une liste différente de fiches de personnes). Excel - Feuilles de calcul séparées renvoie un Documents de sortie tableau à 5 entrées : {fileName: "Sheet1.xlsx", streamFile: "<base64>"} via Sheet5.xlsx. Un Appliquer à chaque La fonction outputDocuments s'exécute une fois par feuille (la capture d'écran le montre). 1 sur 5 compteur d'itérations) et utilise Créer un fichier pour déposer chaque XLSX dans /pdf4metest/excel/feuilles de calcul séparées/sortieParcourez le dossier de sortie : les 5 fichiers fractionnés s’y trouvent, triés par ordre alphabétique.
Ce que les gens oublient souvent : Appliquer à chaque n'est pas optionnel
Excel - Séparer les feuilles de calcul renvoie un tableauIl ne s'agit pas d'un seul fichier. Le nombre d'entrées dépend du classeur source (2 feuilles → 2 entrées ; 50 feuilles → 50 entrées). Veillez à toujours inclure l'étape suivante dans une boucle « Appliquer à chaque élément ». Documents de sortieCueillette Contenu du fichier En dehors de la boucle, aucune valeur utile n'est renvoyée. À l'intérieur de la boucle, le sélecteur de contenu dynamique expose Nom de fichier et Contenu du fichier sur l'article actuel.
Ce produit répond à des questions courantes du monde réel
Les internautes recherchent cette solution avec une formulation étonnamment précise. Voici les requêtes exactes auxquelles ce flux répond :
« Comment puis-je diviser automatiquement un fichier Excel contenant plusieurs feuilles en fichiers distincts ? » Oui. Ce processus fait exactement cela. Déposez le classeur source dans Dropbox ; le fractionnement et le chargement se font automatiquement.
« Est-ce que Power Automate peut enregistrer chaque feuille dans un fichier Excel distinct ? » Oui, via l'action PDF4me Connect et une boucle « Appliquer à chaque élément ». Sans VBA ni scripts Office.
« Dois-je écrire une action par feuille ? » Non. L'action « Appliquer à chaque » gère n'importe quel nombre de feuilles. Le corps du flux reste inchangé.
« Et si le classeur contient 100 feuilles ? » Même déroulement. La boucle s'exécute 100 fois. Chaque itération dure environ 1 seconde.
« Puis-je renommer les fichiers de sortie ? » Oui, créez le nouveau nom à l'aide d'une étape ou d'une expression de composition à l'intérieur de la boucle avant la création du fichier. Consultez la section dépannage.
Un flux Power Automate en quatre actions qui prend en charge n'importe quelle feuille multi-étapes .xlsx et enregistre un fichier par feuille de calcul dans un dossier de destination. Réutilisable pour les listes de RH, les pipelines de vente segmentés par région, les rapports mensuels segmentés par mois, bref, tout élément pouvant figurer sous forme de plusieurs onglets dans un même classeur.
Le flux complet. La boucle « Pour chaque » s'exécute 5 fois (une fois par feuille de sortie) ; chaque itération dure environ 1 seconde.
Ouvrir Separate.xlsx dans Excel. Il comporte 5 onglets (Feuille1 à Feuille5), chacun contenant des lignes d'enregistrements de personnes : Prénom, Nom, Sexe, Pays, Âge, Date, ID.
Classeur source. Cinq onglets en bas, chacun contenant environ 50 lignes d'enregistrements de personnes.Le dossier source avant l'exécution du flux. Un seul classeur.
Pour les tests, la gâchette manuelle est la plus rapide. En production, remplacez-la par Lorsqu'un fichier est créé (Dropbox), Lorsqu'un élément est créé (SharePoint), Lorsqu'un nouvel e-mail arrive (Outlook), Récurrence, ou tout autre déclencheur.
Action 2 : Dropbox - Récupérer le contenu d'un fichier à partir de son chemin d'accès
Rechercher PDF4me dans le sélecteur d'actions et le choix Excel - Feuilles de calcul séparéesConfigurer :
Champ
Valeur utilisée dans cette exécution
File Content
File Content from the previous Dropbox step (dynamic content)
File Name
Separate.xlsx
Culture & Language Settings (Advanced)
en-US (default. change only for non-US locales)
Configuration de l'action. La culture par défaut est en-US. Passer à fr-FR, C'est le, I-JP etc. uniquement si le contenu de la feuille utilise des formats de nombre/date non américains.
Action 4 : Appliquer à chaque élément → Dropbox - Créer un fichier
Après l'action « Séparer les feuilles de calcul », ajoutez Appliquer à chaque et sélectionnez Documents de sortie depuis le sélecteur de contenu dynamique. À l'intérieur de la boucle, déposez un Dropbox. Créer un fichier action et configurez-la comme ceci :
Champ
Valeur utilisée dans cette exécution
Folder Path
/pdf4metest/excel/separate worksheets/output
File Name
File Name (dynamic content from the current item)
File Content
File Content (dynamic content from the current item)
La boucle « Appliquer à chaque élément » s'applique à outputDocuments. Le nom et le contenu du fichier courant s'affichent dans le sélecteur de contenu dynamique à l'intérieur de la boucle.À l'intérieur de la boucle. Le nom et le contenu du fichier proviennent de l'élément actuel.
Apply to each does not show File Name / File Content
Make sure the loop is iterating outputDocuments, not the action itself. Click the Apply to each dropdown, search "outputDocuments", and pick it.
Only one file appears in the output folder
Create file is OUTSIDE the loop. Drag it inside the Apply to each container so it runs once per item.
Output files all overwrite each other
Two causes: (a) File Name is hardcoded instead of mapped to dynamic content. delete and re-pick File Name from the inner item; (b) two sheets in the source share the same name. rename them in Excel or build a unique name in a Compose step.
Decimals read as text or dates
A sheet using 1.234,56 (comma decimal) gets misinterpreted because Culture & Language Settings is en-US. Switch to your locale (fr-FR, de-DE, pt-BR, etc).
Cross-sheet formula came out as #REF!
Expected. After splitting, =Sheet2!A1 from a Sheet1 output cannot resolve because Sheet2 is now in a different file. Plan each sheet to be self-contained, or pre-compute the values upstream.
Need a date prefix on each output file name
Inside the Apply to each, add a Compose before Create file with: concat(formatDateTime(utcNow(),'yyyy-MM-dd'),'_',items('Apply_to_each')?['fileName']). Point File Name at the Compose output. Result: 2026-06-02_Sheet1.xlsx.
How do I split an Excel file with multiple sheets into separate files automatically in Power Automate?+
Use the PDF4me Excel - Separate Worksheets action. It takes a single multi-sheet .xlsx as input and returns an outputDocuments array with one file per sheet. Wrap the result in an Apply to each loop and write each item with Create file. Four actions total: trigger, Get file content, Separate Worksheets, Apply to each → Create file.
Can Power Automate save each sheet as a separate Excel file without code?+
Yes. The PDF4me Excel - Separate Worksheets action is a no-code cloud connector. There is no VBA, no Office Script, no Power Automate Desktop required. it runs entirely in the Power Automate cloud designer and outputs ready-to-save .xlsx files.
What happens if the source workbook has a different sheet count next run?+
Nothing breaks. The action dynamically returns one outputDocuments entry per sheet present, and the Apply to each iterates whatever the array length is. Build the flow once with a 5-sheet sample and it will handle 2-sheet or 200-sheet workbooks identically.
Do the output files keep their sheet names?+
Yes. Each output file is named after its source sheet name plus the .xlsx extension. Sheet5 → Sheet5.xlsx. If you have custom sheet names (e.g. "Q1 2025"), the output file is "Q1 2025.xlsx" accordingly.
Will my formulas still work after the split?+
Intra-sheet formulas (everything that references cells on the same sheet) work as expected. the engine preserves cell values, number formats, and styles. Cross-sheet references like =Sheet2!A1 cannot survive because Sheet2 is no longer in the same file; expect those to become #REF!. Plan the workbook so each sheet is self-contained, or pre-compute the values upstream.
Can I use SharePoint, OneDrive, or Dataverse instead of Dropbox?+
Yes. Swap the Dropbox actions for SharePoint Get file content / Create file, OneDrive Get file content / Create file, or Dataverse Download file / Add file. The PDF4me action and its parameters are identical regardless of source.
How do I rename the output files (add a date prefix, replace spaces, etc.)?+
Inside the Apply to each loop, add a Compose step before Create file. Build the new name with concat() and formatDateTime() expressions, then bind Create file → File Name to the Compose output. Example: concat(formatDateTime(utcNow(),'yyyy-MM-dd'),'_',items('Apply_to_each')?['fileName']) produces 2026-06-02_Sheet1.xlsx.
Is there a limit on the number of sheets I can split?+
Practical limits are bounded by Power Automate run-time and action body size. A single workbook with hundreds of sheets is fine; the loop just iterates more times. For thousands of sheets, consider Power Automate concurrency settings or batching the work across multiple runs.
Does this work in Power Automate Desktop?+
PDF4me Connect is a cloud connector available in Power Automate (the web flow designer). For Power Automate Desktop, call the same Separate Worksheets REST endpoint with the HTTP action.