Aller au contenu principal

Modèle de facture Excel dans Power Automate : remplissez-le à partir d’une liste SharePoint et archivez chaque facture au format PDF/A avec PDF4me

· 34 minutes de lecture
SEO and Content Writer

PDF4me Excel - Populate est une action Power Automate qui remplit un modèle de facture Excel avec des données JSON. Un nouvel élément de liste SharePoint fournit les données, Populate les inscrit dans les marqueurs dynamiques du modèle, et trois autres actions PDF4me transforment le classeur en une facture PDF/A compressée que SharePoint stocke automatiquement.

Recherchez un modèle de facture Excel et la première page vous propose une galerie. Microsoft, Vertex42, QuickBooks et Square vous fournissent tous un classeur vierge bien conçu, mais s'arrêtent au téléchargement. Aucun n'explique comment le remplir, ce qui, en pratique, consiste à copier les informations du client dans des cellules, exporter au format PDF, nommer le fichier et le déposer dans un dossier, facture par facture. Cette méthode conserve l'avantage principal de ces pages : un modèle que n'importe qui peut concevoir dans Excel. Elle supprime toutes les étapes postérieures au téléchargement.

Aperçu du flux
1. When an item is created
Déclencheur SharePoint sur la liste nommée Excel Template. Chaque nouvelle ligne correspond à une facture.
2. Compose
Transforme la ligne de liste plate en JSON RootData imbriqué, comme l'attend le modèle.
3. Get file content using path
Lit le modèle de facture Excel à partir Shared Documents à chaque exécution.
4. Excel - Populate
PDF4me Excel. Inscrit le JSON dans les marqueurs intelligents de la feuille 1.
5. Convert to PDF
PDF4me Convert. Convertit le classeur rempli en fichier Invoice.pdf.
6. PDF - Compress
Optimize Profile Web. S'exécute avant l'application de la norme d'archivage.
7. PDF - Create PdfA
Compliance PdfA2b. L'étape qui transforme une facture en document.
8. Create file
SharePoint écrit ExcelArchived.pdf dans /Shared Documents/ArchivedExcel.
La version courte

Une ligne est ajoutée à une liste SharePoint. Power Automate la convertit en JSON, remplit un modèle de facture Excel, convertit le classeur en PDF, le compresse, le convertit au format PDF/A2b et enregistre le résultat dans un dossier SharePoint. Huit actions, environ trente-six secondes par facture, et personne n'ouvre Excel.

Questions et réponses basées sur le pourquoi

Pourquoi utiliser un classeur Excel comme modèle de facture ? Parce que c’est là que les factures sont déjà conçues. La largeur des colonnes, les cellules fusionnées, les polices et les bordures sont toutes définies dans Excel. Ainsi, la personne responsable de la mise en page peut la modifier sans toucher au flux ni apprendre le HTML. La seule condition est que chaque cellule contenant une valeur affiche un marqueur dynamique au lieu d’un texte d’exemple. L’étape 4 illustre précisément à quoi cela ressemble.

Pourquoi le flux nécessite-t-il une action Compose ? Parce qu’une ligne de liste SharePoint est plate, contrairement au modèle. La liste stocke les deux éléments de ligne dans dix colonnes distinctes, de Item1Description à Item2TaxRate. Le modèle comporte une seule ligne d’élément qui se répète pour chaque entrée d’un tableau Items. Compose transforme les dix colonnes en un tableau à deux éléments, et c’est ce tableau qui provoque la répétition de la ligne.

Pourquoi convertir la facture en PDF/A plutôt que de conserver le fichier .xlsx ? Un classeur Excel est un document dynamique. Toute personne l'ouvrant peut modifier une quantité, et une formule peut donner un total différent sur un autre ordinateur. Un PDF fige la facture telle qu'elle a été établie. Le PDF/A va encore plus loin en intégrant tous les éléments nécessaires à l'affichage de la page, y compris les polices, ce qui est essentiel pour un document qui doit généralement rester lisible pendant des années après son envoi.

Pourquoi conserver le modèle dans une bibliothèque SharePoint plutôt que dans le flux ? Parce que le flux le lit à chaque exécution. Modifiez le logo, les couleurs ou l’ordre des colonnes dans SharePoint, et la facture suivante utilisera la nouvelle mise en page sans que personne n’ait à modifier le flux. L’historique des versions de SharePoint conserve également toutes les copies précédentes du modèle, ce qui permet d’annuler une modification de mise en page incorrecte.


Ce que vous obtiendrez

Entrée : une ligne de liste SharePoint contenant l’en-tête de la facture, les informations client et deux lignes de commande. Sortie : une facture compressée au format PDF/A2b, nommée ExcelArchived.pdf, dans le dossier /Shared Documents/ArchivedExcel du même site.

Liste SharePoint nommée Modèle Excel contenant quatre lignes de factures : Shyam Prasad-INV, Sarah Brown - INV 01, Larry Wheels - 01 et Morris - INV. Les colonnes sont : Titre, Date et heure, Date d'échéance, Numéro de bon de commande, Conditions de paiement, Adresse e-mail de l'entreprise, Adresse de l'entreprise, Nom du client, Adresse e-mail du client, Société du client, Adresse du client, Ville, État et code postal du client. Les colonnes correspondantes sont : Description, Quantité, Prix unitaire, Remise et Taux de taxe pour les articles 1 et 2.

La source des données : une ligne par facture, sur vingt-deux colonnes. La dernière ligne, Morris - INV, est celle qui a produit l’exemple de résultat.

La bibliothèque de documents SharePoint est ouverte dans le dossier ArchivedExcel et affiche le fichier ExcelArchived.pdf modifié il y a quelques secondes par le compte Pdf4me Flow.

ExcelArchived.pdf se trouve dans le dossier ArchivedExcel et a été créé par le compte de flux quelques secondes après l'ajout de la ligne.


Ce dont vous avez besoin

  • Power Automate. Ouvrez Power Automate. Un flux cloud sur des connecteurs standard. SharePoint et les connecteurs PDF4me ne nécessitent pas d'abonnement premium.
  • Clé API PDF4me. Obtenez votre clé API. Ce processus utilise trois connexions PDF4me : PDF4me Excel, PDF4me Convert et PDF4me PDF. Une seule clé autorise les trois.
  • Un site SharePoint contenant une liste dont les colonnes correspondent au mappage Compose, ainsi qu'une bibliothèque de documents pour le modèle et le résultat. Le flux capturé utilise la liste Excel Template, le dossier /Shared Documents/Excel Template pour le classeur et /Shared Documents/ArchivedExcel pour les factures.
  • Modèle de facture Excel : pdf4me-excel-invoice-template.xlsx. Une seule feuille, avec des marqueurs intelligents déjà intégrés.
  • Le fichier Compose compose-rootdata.json. Le mappage RootData exact de l'étape 2, prêt à être collé.
  • La facture finale. excel-archived-invoice.pdf. PDF/A-2b, soit exactement le résultat de l'exécution capturée.

Commencez par récupérer les exemples. Chargez le modèle dans votre bibliothèque SharePoint, collez le JSON dans l'action Compose, puis comparez votre première exécution avec la facture finale. Ouvrez les propriétés du document : le format PDF/A-2b devrait y être indiqué. Savoir à quoi ressemble un résultat correct est le moyen le plus rapide de vérifier que votre exécution a bien fonctionné.


Aperçu du flux

  1. When an item is created (déclencheur SharePoint), il surveille la liste nommée Excel Template.
  2. Compose construit le JSON RootData à partir de la nouvelle ligne.
  3. Get file content using path lit le modèle à partir de /Shared Documents/Excel Template.
  4. Excel - Populate (PDF4me Excel) fusionne le JSON dans la feuille de calcul 1.
  5. Convert to PDF (PDF4me Convert) transforme le classeur en Invoice.pdf.
  6. PDF - Compress (PDF4me PDF) avec Optimize Profile Web.
  7. PDF - Create PdfA (PDF4me PDF) avec Compliance PdfA2b.
  8. Create file (SharePoint) dans /Shared Documents/ArchivedExcel.

Aperçu complet du flux

Historique d'exécution de Power Automate montrant huit actions s'exécutant successivement : création d'un élément (0,3 seconde), composition (0 seconde), récupération du contenu du fichier à partir du chemin d'accès (0,5 seconde), remplissage Excel (0,8 seconde), conversion en PDF (10 secondes), compression PDF (11 secondes), création d'un PDFA (11 secondes) et création du fichier (2 secondes).

Le traitement ayant généré la facture d'exemple. Les Convert, Compress et Create PdfA prennent chacune entre dix et onze secondes. Toutes les autres opérations s'exécutent en moins d'une seconde, à l'exception de l'écriture dans SharePoint qui dure deux secondes. Prévoyez environ trente-six secondes par facture.


Étape 1 : Comment déclencher un flux lorsqu’un élément de liste SharePoint est créé ?

Déroulement jusqu'à présent : rien pour l'instant, ceci est le déclencheur.

Chaque nouvelle ligne de la liste correspond à une facture, donc le déclencheur est la liste elle-même.

  1. Créez un Automated cloud flow et sélectionnez SharePoint > When an item is created.
  2. Configurer :
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • List Name: Excel Template

Configuration du déclencheur SharePoint

Dans SharePoint, un panneau de déclenchement est créé. L'adresse du site est définie sur PDF4me SharePoint (ynoox1.sharepoint.com/sites/PDF4meSharepoints) et le nom de la liste est défini sur « Modèle Excel ». Les paramètres avancés affichent 0 sur 1. La connexion à SharePoint est établie.

Une liste, un déclencheur. La colonne Title intégrée à la liste contient le numéro de facture, c'est pourquoi l'étape suivante associe le numéro au Title.

Conseil : Les expressions utilisent le nom interne d'une colonne, et non celui affiché dans la liste. La liste présente une colonne nommée Date and time, mais le déclencheur la renvoie sous la forme Dateandtime, et c'est ce nom que Compose doit utiliser. Un nom incorrect n'entraîne pas l'échec de l'exécution. Le ? dans triggerBody()?['Dateandtime'] renvoie simplement la valeur null, de sorte que la facture affiche une date vide.


Étape 2 : Comment convertir une ligne SharePoint plate en JSON pour un modèle Excel ?

Flux jusqu'à présent : Déclencheur SharePoint.

Le modèle attend une structure imbriquée : un en-tête de facture, un bloc entreprise, un bloc client et une liste d’articles. La ligne de liste est simple. Compose assure la liaison entre ces deux éléments.

  1. Ajouter Data Operation > Compose.
  2. Collez ceci dans Inputs. Chaque valeur est une expression triggerBody()?['<column>'] qui pointe vers une colonne de liste.
{
"RootData": {
"Invoice": [
{
"Number": "@{triggerBody()?['Title']}",
"Date": "@{triggerBody()?['Dateandtime']}",
"DueDate": "@{triggerBody()?['DueDate']}",
"PONumber": "@{triggerBody()?['PONumber']}",
"PaymentTerms": "@{triggerBody()?['PaymentTerms']}"
}
],
"Company": [
{
"Email": "@{triggerBody()?['CompanyEmail']}",
"Address": "@{triggerBody()?['CompanyAddress']}"
}
],
"Customer": [
{
"Name": "@{triggerBody()?['CustomerName']}",
"Email": "@{triggerBody()?['CustomerEmail']}",
"Company": "@{triggerBody()?['CustomerCompany']}",
"Address": "@{triggerBody()?['CustomerAddress']}",
"CityStateZIP": "@{triggerBody()?['CustomerCityStateZIP']}"
}
],
"Items": [
{
"Description": "@{triggerBody()?['Item1Description']}",
"Qty": "@{triggerBody()?['Item1Qty']}",
"UnitPrice": "@{triggerBody()?['Item1UnitPrice']}",
"Discount": "@{triggerBody()?['Item1Discount']}",
"TaxRate": "@{triggerBody()?['Item1TaxRate']}"
},
{
"Description": "@{triggerBody()?['Item2Description']}",
"Qty": "@{triggerBody()?['Item2Qty']}",
"UnitPrice": "@{triggerBody()?['Item2UnitPrice']}",
"Discount": "@{triggerBody()?['Item2Discount']}",
"TaxRate": "@{triggerBody()?['Item2TaxRate']}"
}
]
}
}

Compose : vue du code

Dans la vue Code de Power Automate, composez une action avec des données d'entrée RootData contenant les tableaux Invoice, Company, Customer et Items, chaque valeur étant associée à une expression triggerBody telle que Title, Dateandtime, DueDate, PONumber, PaymentTerms, CompanyEmail, CustomerName et Item1Description jusqu'à Item2TaxRate.

Les tableaux Invoice, Company et Customer ne contiennent qu'un seul élément. Items comporte deux éléments, un pour chaque ensemble de colonnes d'articles dans la liste.

Comment chaque cellule modèle obtient sa valeur

Cellule modèleMarqueur intelligent dans la celluleCompose le cheminColonne SharePoint
Invoice No. (B12)&=RootData.Invoice.Number(noadd)Invoice[0].NumberTitle
Date (B13)&=RootData.Invoice.Date(noadd)Invoice[0].DateDateandtime
Due Date (B14)&=RootData.Invoice.DueDate(noadd)Invoice[0].DueDateDueDate
PO Number (B15)&=RootData.Invoice.PONumber(noadd)Invoice[0].PONumberPONumber
Payment Terms (B16)&=RootData.Invoice.PaymentTerms(noadd)Invoice[0].PaymentTermsPaymentTerms
Courriel et adresse (B4, B5)&=RootData.Company.Email(noadd) et .AddressCompany[0]CompanyEmail, CompanyAddress
Bloc Customer (B6 à B10)&=RootData.Customer.Name(noadd) et quatre autresCustomer[0]CustomerName vers CustomerCityStateZIP
Ligne d'éléments (A19 à E19)&=RootData.Items.Description, .Qty, .UnitPrice, .Discount, .TaxRateItems[0] et Items[1]Colonnes Item1 et Item2

Le champ From  (B3) est en texte brut (PDF4me) et sera donc identique sur toutes les factures. Remplacez-le par le nom de votre entreprise dans le modèle.


Étape 3 : D’où le flux lit-il le modèle Excel ?

Flux jusqu'à présent : déclencheur SharePoint plus Compose.

Le modèle est un fichier ordinaire situé dans une bibliothèque de documents. Le flux le lit à chaque exécution ; par conséquent, la mise en page utilisée est celle qui se trouve dans SharePoint à ce moment précis.

  1. Ajouter SharePoint > Get file content using path.
  2. Configurer :
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • File Path: /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx
    • Infer content type (avancé) : Yes

Get file content using path : configuration

Action « Obtenir le contenu d'un fichier SharePoint à l'aide du chemin d'accès » avec l'adresse du site PDF4me SharePoint, le chemin d'accès au fichier /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx et le paramètre avancé « Déduire le type de contenu » défini sur « Oui », connecté à SharePoint.

La liste et le dossier de modèles s'appellent tous deux Excel Template. Ce sont deux choses différentes : l'une est une liste, l'autre un dossier dans Shared Documents.


Étape 4 : Comment Excel - Populate remplit-il un modèle de facture Excel ?

Flux jusqu'à présent : déclencheur SharePoint plus Compose plus Get file content using path.

Cette étape prend en charge le travail que les galeries de modèles vous laissent faire. La fonction Excel - Populate utilise le classeur et le fichier JSON, repère chaque marqueur intelligent et inscrit la valeur correspondante dans sa cellule.

  1. Ajouter Excel - Populate à partir de la connexion PDF4me Excel.
  2. Configurer :
    • File Content : le jeton Body obtenu en Get file content using path
    • JSON Data : le résultat de Compose (le jeton apparaît comme Body)
    • File Name: Populate.xlsx
    • Worksheet Indexes: 1
  3. Ouvrez Advanced parameters et configurez trois des quatre éléments suivants :
    • Strict JSON Strings: Yes
    • Culture & Language Settings: en-US
    • Calculate Formulas: Yes

Excel - Populate : configuration

Action de remplissage PDF4me Excel avec le contenu du fichier défini sur le jeton Body de SharePoint, les données JSON définies sur le jeton Body de Compose, le nom de fichier Populate.xlsx, 1 index de feuille de calcul et les paramètres avancés suivants : Chaînes JSON strictes : Oui, Paramètres de langue et de culture : en-US et Calculer les formules : Oui, connecté à PDF4me Excel

Deux éléments sont nécessaires au traitement : les octets du modèle provenant de SharePoint et le JSON provenant Compose. Le reste concerne la mise en forme et la portée.

Le modèle utilise deux types de marqueurs, et c'est la différence entre eux qui constitue toute l'astuce :

  • Les cellules d'en-tête, telles que Invoice No. contiennent &=RootData.Invoice.Number(noadd). Le modificateur (noadd) écrit la valeur directement et n'insère jamais de ligne.
  • La ligne  item  contient &=RootData.Items.Description, &=RootData.Items.Qty, etc., sans modificateur. Cette ligne est écrite une fois pour chaque élément du tableau Items, donc deux articles produisent deux lignes, et un troisième article en produit une troisième.

La syntaxe complète, incluant les modificateurs, les chemins imbriqués et la gestion des formules, est disponible dans la présentation de la syntaxe de l' Excel Populate. Pour l'action  Remplir  seule, avec un modèle Dropbox et une charge utile JSON intégrée, consultez la section  Remplissage d'un modèle Excel à partir de JSON dans Power Automate .

Astuce : Dans la Compose, chaque valeur est interpolée entre guillemets. Les quantités et les prix sont donc intégrés au modèle sous forme de texte. Si l’option Strict JSON Strings est Yes, elles restent du texte, ce qui permet un affichage correct et suffit amplement pour ce modèle. Si vous ajoutez un total de ligne ou une somme, désactivez cette option No que les chaînes numériques soient converties en nombres. Sinon, la fonction somme les ignore, car Excel n’additionne pas les nombres stockés sous forme de texte.


Étape 5 : Comment convertir le classeur rempli en PDF ?

Flux jusqu'à présent : Déclencheur SharePoint + Compose + Get file content using path + Excel - Populate.

Le classeur rempli n'existe que pendant l'exécution. Il n'est jamais enregistré au format .xlsx ; il est directement transmis au convertisseur.

  1. Ajouter Convert to PDF à partir de la connexion PDF4me Convert.
  2. Configurer :
    • File Content : le jeton Output File Content d’ Excel - Populate
    • File Name: Invoice.pdf

Convert to PDF : configuration

L'action PDF4me Convertir en PDF, avec le contenu du fichier défini sur le jeton de contenu du fichier de sortie provenant d'Excel et le nom du fichier défini sur Facture.pdf, est connectée à PDF4me Convertir.

Output File Content est le classeur rempli. Il n'est jamais transféré vers SharePoint au format .xlsx.

Conseil : Le flux capturé utilise Invoice.pdf comme File Name et la conversion fonctionne correctement. Cependant, la documentation Convert to PDF demande l’extension du fichier source ; il est donc plus sûr d’utiliser Invoice.xlsx lors de la création de votre propre conversion.

Définissez la mise en page dans le modèle, et non dans le flux. Convert to PDF respecte la mise en page du classeur. Le modèle d'exemple est légèrement plus large qu'une page Letter ; la facture générée comporte donc les colonnes A à D sur la première page et uniquement la colonne Tax % sur la deuxième. Ouvrez le modèle dans Excel, accédez à Page Layout et définissez Scale to Fit > Width sur 1 page, puis enregistrez-le dans SharePoint. Toutes les factures suivantes tiendront sur une seule page.


Étape 6 : Comment compresser la facture et la convertir en PDF/A ?

Déroulement jusqu'à présent : tout passe par Convert to PDF.

La connexion PDF4me PDF effectue deux actions : la compression puis la certification. Inverser ces actions permettrait à la compression de réécrire un fichier déjà conforme.

  1. Ajouter PDF - Compress.
    • File Content : le jeton Body de Convert to PDF
    • File Name : le jeton headers/FileName conservé de l'action précédente
    • Optimize Profile: Web
  2. Ajouter PDF - Create PdfA.
    • File Content : le jeton Body du PDF - Compress
    • File Name : le jeton headers/FileName
    • Compliance: PdfA2b
    • Allow Upgrade: Yes
    • Allow Downgrade: Yes

Compress et Create PdfA : paramètres

ActionParamètreValeur utilisée iciCe qu'il contrôle
PDF - CompressOptimize ProfileWebIl faut faire des compromis entre taille et fidélité. Une facture composée de texte et de tableaux, sans images, a peu de risques de dégradation.
PDF - Create PdfACompliancePdfA2bISO 19005-2, niveau B. La page s'affichera de la même manière sur n'importe quel visualiseur, même dans plusieurs années.
PDF - Create PdfAAllow UpgradeYesPermet à l'action de se dérouler à un niveau supérieur lorsque le niveau demandé est inaccessible.
PDF - Create PdfAAllow DowngradeYesCela permet de se stabiliser à un niveau inférieur au lieu d'échouer complètement.
Action de compression PDF avec PDF4me : le contenu du fichier est défini sur le jeton Body, le nom du fichier sur le jeton FileName des en-têtes et le profil d'optimisation sur Web. Connexion à PDF4me PDF.

Compress travaille sur la facture convertie, avant toute certification.

Action PDF4me PDF Créer un PDF avec le contenu du fichier défini sur le jeton Corps, le nom du fichier défini sur le jeton d'en-tête FileName, la conformité PDF4me2b, l'autorisation de mise à niveau et de rétrogradation activées, connectée à PDF4me PDF

Create PdfA est la dernière action à modifier le document, ce qui est exactement sa place.

La même paire effectue la même tâche sur les fichiers déjà présents dans SharePoint lors de l'archivage PDF dans Power Automate avec un dossier SharePoint sans surveillance.


Étape 7 : Où est enregistrée la facture finale ?

Déroulement jusqu'à présent : tout passe par Create PdfA.

La dernière action consiste à réinscrire la facture certifiée dans le même site SharePoint.

  1. Ajouter SharePoint > Create file.
  2. Configurer :
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • Folder Path: /Shared Documents/ArchivedExcel
    • File Name: ExcelArchived.pdf
    • File Content : le jeton Body du PDF - Create PdfA

SharePoint Create file : configuration

Action de création de fichier SharePoint avec l'adresse de site PDF4me SharePoint, le chemin de dossier /Shared Documents/ArchivedExcel, le nom de fichier ExcelArchived.pdf et le contenu du fichier défini sur le jeton Body de l'action de création de PDF (PDF), connectée à SharePoint.

Chaque action PDF4me génère un jeton appelé Body ; son libellé seul ne vous indique donc pas laquelle vous avez sélectionnée. Survolez-le ou consultez le code source pour body('PDF_-_Create_PdfA').

Modifiez ceci avant la mise en production. ExcelArchived.pdf est un nom fixe ; par conséquent, chaque nouvel élément de liste est enregistré dans le même fichier et le dossier ne contient jamais plus d'une facture que la plus récente. Construisez plutôt le nom à partir de la ligne. L'ID de l'élément de liste est unique par définition ; la concat('Invoice-', triggerBody()?['ID'], '.pdf') fonctionne donc toujours. Le numéro de facture dans Title fonctionne également, à condition qu'il ne contienne aucun caractère interdit par SharePoint dans les noms de fichiers, comme une barre oblique, un deux-points, un astérisque ou un point d'interrogation.


Exécutez le flux et vérifiez

  1. Save le flux en haut à droite.
  2. Ajoutez un nouvel élément à la liste nommé Excel Template et remplissez toutes les colonnes utilisées par le modèle.
  3. Ouvrez l'historique d'exécution. Les huit actions devraient être affichées en vert, les opérations Convert, Compress et Create PdfA étant les plus longues.
  4. Ouvrez le dossier /Shared Documents/ArchivedExcel et vérifiez que le PDF s'y trouve, avec Modified By indiquant le compte du flux.
  5. Ouvrez le fichier lui-même et comparez-le avec la ligne de la liste, puis vérifiez ses propriétés de document pour la déclaration PDF/A.

La facture issue de l'analyse pèse 37 876 octets. Elle affiche la ligne Morris - INV : client Morris Luma chez Invoicing.co, datée du 01/09/2026 et payable le 20/09/2026, avec deux lignes : PDF to Excel (quantité : 60) et PDFA (quantité : 45). Ses métadonnées XMP indiquent que pdfaid:part vaut 2 et pdfaid:conformance vaut B, ce qui correspond à la norme PDF/A-2b (vue interne). Elle comporte deux pages au lieu d'une, pour des raisons de mise en page expliquées à l'étape 5.

Qu'avez-vous créé concrètement ? Un processus de facturation où la seule étape manuelle consiste à saisir les données. La mise en page se trouve dans un fichier Excel modifiable par tous, les données sont stockées dans une liste et le résultat est un PDF d'archivage autonome, sans intervention humaine. Ce modèle n'est pas limité à Power Automate : il est également compatible avec Make, Zapier et n8n, dès lors que les actions PDF4me Excel et PDF/A sont disponibles.


Variantes courantes que vous pouvez ajouter sans reconstruction

Envoyer la facture par courriel au client
Ajoutez l'option Send an email (V2) après Create file Office 365 Outlook Indiquez l'adresse e-mail du client dans le champ  À  et joignez le Body du PDF - Create PdfA /A, afin que le client reçoive le même fichier PDF/A que celui archivé.
Formatez les dates de la manière dont vos clients les lisent
L'exemple affiche 2026-09-01 car c'est ainsi que le déclencheur renvoie une date. Encadrez les expressions Date et DueDate dans l' Compose avec formatDateTime et un modèle tel que  dd MMM yyyy.
Additionnez les totaux par ligne et le total général
Insérez les formules dans le modèle, définissez Strict JSON Strings sur  Non  afin que les quantités et les prix arrivent sous forme de nombres, et laissez Calculate Formulas sur  Oui  afin que les totaux soient déjà calculés avant la conversion.
Vérifiez la norme au lieu de la supposer
Ajoutez l'étape Validate PDFA après Create PdfA et créez une branche en fonction du résultat. Une conversion ayant échoué apparaîtra alors dans l'historique d'exécution plutôt que dans un rapport d'audit.

Comment cela se compare-t-il aux autres méthodes de production de factures ?

Chaque ligne décrit l'alternative. La dernière ligne correspond à ce flux.

ComparaisonQui peut modifier la dispositionComment le modèle est rempliFormat d'archivage
Modèle Excel rempli manuellement comparé à ce fluxToute personne utilisant ExcelCopier et coller, une facture à la foisPDF simple, sauf si l'option d'exportation PDF/A est activée
Macro VBA Excel comparée à ce fluxCelui qui maintient la macroAutomatiquement, sur un ordinateur de bureau avec le classeur ouvertPDF simple, sauf si l'exportation est configurée pour PDF/A
Modèle HTML et Convert HTML vers PDF selon ce fluxUne personne à l'aise avec HTML et CSSAutomatiquement, dans le cloudPDF
Ce fluxToute personne utilisant ExcelAutomatiquement, sur chaque nouvel élément de listePDF/A-2b

La distinction essentielle : les deux premières méthodes conservent la mise en page dans Excel mais nécessitent l’intervention d’un opérateur, tandis que la troisième supprime l’intervention humaine mais transfère la mise en page dans le code. Seul ce flux combine les deux.


Questions fréquentes

Existe-t-il un modèle de facture au format Excel ?

Oui. Excel propose des modèles de factures : dans l’application de bureau, choisissez File > New et recherchez  facture . Microsoft en publie également d’autres dans sa galerie de modèles en ligne. Ils sont conçus pour être remplis manuellement.

Le modèle utilisé dans cet article est conçu pour un autre usage. Ses cellules de valeur contiennent des marqueurs intelligents au lieu de texte d'exemple, permettant ainsi à un flux de les remplir. Vous pouvez convertir n'importe quel modèle de facture existant de la même manière : conservez la mise en page et remplacez chaque valeur par un marqueur tel que &=RootData.Invoice.Number(noadd).

Comment générer une facture à partir de données Excel ?

Organisez les données en lignes, définissez la mise en page à l'aide d'un modèle, et laissez un outil fusionner les deux. Dans Excel uniquement, cet outil peut être une fusion et un publipostage Word ou une macro VBA, et les deux s'exécutent sur un poste de travail.

Dans ce flux, les lignes résident dans une liste SharePoint. Compose convertit une ligne en JSON, puis l' Excel - Populate l'intègre au modèle. Si vos données sont déjà dans un tableau Excel sur OneDrive ou SharePoint, l'action List rows present in a table du connecteur Excel Online (Business) peut alimenter la même Compose au sein d'une boucle Apply to each, en remplaçant triggerBody() par items('Apply_to_each'). À partir de l'étape 3, tout reste inchangé.

Comment automatiser la facturation dans Excel ?

L'automatisation d'une facture consiste à supprimer toutes les étapes manuelles nécessaires à sa création : saisie des données, exportation au format PDF, nommage et archivage du fichier. Le modèle reste un simple fichier Excel.

Ce flux supprime les quatre éléments. Seule la ligne de la liste constitue l'entrée. Le modèle est rempli par Excel - Populate, exporté par Convert to PDF, archivé par PDF - Create PdfA et classé par Create file. Une fois le nom du fichier généré à partir de la ligne, comme décrit à l'étape 7, aucune intervention manuelle n'est requise.

Power Automate peut-il convertir un fichier Excel en PDF ?

Oui. Dans un flux cloud, l'action Convert file du connecteur OneDrive for Business transforme un fichier .xlsx en PDF, mais uniquement pour un fichier stocké dans OneDrive. C'est pourquoi les flux SharePoint copient souvent d'abord le classeur dans OneDrive, puis le suppriment.

PDF4me Convert to PDF récupère le contenu du fichier directement à partir de l'action précédente. C'est pourquoi le classeur rempli dans ce flux n'est jamais enregistré : il passe directement d' Excel - Populate au convertisseur, et le seul fichier enregistré dans SharePoint est la facture PDF/A finale.


Dépannage

Un champ de la facture est vide

Vérifiez le nom de la colonne dans l'expression Compose. Il doit s'agir du nom interne, Dateandtime, et non de Date and time. Le point d'interrogation dans triggerBody()?['Dateandtime'] transforme un nom incorrect en null au lieu de générer une erreur ; l'exécution reste donc validée et la cellule demeure vide. Si le nom est correct, vérifiez le chemin JSON par rapport au marqueur : RootData, puis Customer, puis Name, orthographiés de la même manière dans les deux cas.

La facture comporte deux pages, avec une seule colonne sur la deuxième page

Le modèle est plus large qu'une page imprimée. Convert to PDF tient compte de la mise en page du classeur ; corrigez-la donc à cet endroit : Page Layout, Scale to Fit, Largeur : 1 page. Enregistrez le modèle dans SharePoint ; la prochaine impression s'affichera sur une seule page.

Un seul fichier de facture est toujours présent dans ArchivedExcel

Le File Name Create file est fixe : ExcelArchived.pdf. Ainsi, chaque exécution cible le même nom. Rendez-le unique pour chaque ligne grâce à l’ID de l’élément de liste, comme décrit à l’étape 7.

Le PDF s'ouvre correctement, mais ce n'est pas un PDF/A

La commande Create file lit PDF - Compress ou Convert to PDF au lieu de PDF - Create PdfA. Les trois éléments sont étiquetés Body, l'erreur est donc facile à commettre et rien d'anormal n'apparaît dans l'historique d'exécution. Vérifiez que l'expression est body('PDF_-_Create_PdfA').


Prochaines étapes

Le même schéma en huit étapes (lister les lignes, remodeler en JSON, récupérer le modèle, remplir, convertir, compresser, certifier, enregistrer) traite tout document qui commence sa vie comme une feuille de calcul : devis, bons de livraison, relevés et certificats.