Power Apps
01 April 2025

Formulaire Power Apps : créer, valider et enregistrer (guide complet)

Le formulaire Power Apps affiche et enregistre une ligne de vos données. Ce guide explique comment le créer, gérer les modes création et modification, valider la saisie, afficher des champs selon les réponses, choisir entre SubmitForm et Patch et le découper en étapes.
Formulaire Power Apps de fiche fournisseur avec une règle de validation sur le SIRET et une confirmation d’enregistrement

Résumé de l'article

Guide pratique du contrôle Formulaire de Power Apps : le relier à une source (DataSource, Item), utiliser les trois modes (NewForm, EditForm, ViewForm), enregistrer avec SubmitForm, OnSuccess et OnFailure, ou avec Patch, valider la saisie, afficher ou masquer un champ selon une réponse, mettre en forme les cartes, découper la saisie en étapes et éviter les lenteurs sur les grandes listes. Il explique aussi la différence avec les formulaires des applications pilotées par modèle.

Résumé en vidéo

Plan de l'article
Un projet Power Platform ?

Faites-nous part des défis de votre entreprise et nous vous aiderons à dynamiser votre activité.

Réserver un audit gratuit
Réserver un audit gratuit
Partager

Le formulaire est le contrôle de Power Apps qui affiche et enregistre une ligne d’une source de données : liste SharePoint, table Dataverse, table SQL. Il crée une carte par colonne, gère trois modes (création, modification, affichage) et enregistre tout en une seule fonction, SubmitForm. Voici comment le créer, valider la saisie, afficher des champs selon les réponses et le découper en étapes.

En bref : le formulaire Power Apps en 3 points

  • Insérez un contrôle Formulaire, choisissez la source de données et la ligne à afficher (propriété Item).
  • Passez-le en création, modification ou affichage avec NewForm, EditForm ou ViewForm, puis enregistrez avec SubmitForm.
  • Les règles de saisie (champ obligatoire, champ visible selon une réponse) se règlent carte par carte, avec des formules.

Créer un formulaire et le relier à une source

Le formulaire est un contrôle de Power Apps : on le branche sur une source de données, et il génère une carte par champ de cette source.

Deux propriétés suffisent pour démarrer : DataSource, la source (liste SharePoint, table Dataverse), et Item, la ligne à afficher ou à modifier, le plus souvent la ligne choisie dans une galerie : Galerie1.Selected.

‍

Insérer un formulaire PowerApps
Figure 1: Insérer un formulaire

‍

Formulaire branché sur SolarTech Devis
Figure 2 : Formulaire branché sur SolarTech Devis

‍

Les contrôles classiques ont un rendu daté : préférez le formulaire des contrôles modernes, plus lisible et plus facile à adapter au mobile.

‍

Ajouter un nouveau formulaire Power Apps
Figure 3 : Ajouter un nouveau formulaire

‍

Nouveau formulaire Power Apps
Figure 4 : Nouveau formulaire

Un formulaire est composé de cartes de données.

Les propriétés d’un formulaire Power Apps

Les formulaires possèdent plusieurs propriétés importantes qu’il faut savoir manipuler :

‍

Propriétés d'un formulaire PowerApps
Figure 5 : Propriétés d'un formulaire sur PowerApps

‍

Propriétés des cartes Power Apps

Les cartes possèdent par défaut un certain nombre de contrôles. Par défaut ces cartes sont verrouillées mais sont déverrouillables en allant dans les paramètres avancés : 

‍

Contrôles de la carte Titre PowerApps
Figure 6 : Contrôles de la carte Titre
Propriétés verrouillées sur PowerApps
Figure 7 : Propriétés verrouillées

StarVisible : Astérisque visible si le champ est obligatoire
ErrorMessage : Message d’erreur visible si la valeur est en erreur lors de la soumission du formulaire
DataCardValue : Champ de saisie
DataCardKey : Nom du champ affiché, branché par défaut sur le nom de la colonne mais modifiable si besoin

Les cartes possèdent elles-mêmes un certain nombre de propriétés qu’il est très important de connaître :

‍

Propriétés d'une carte Power Apps
Figure 9 : Propriétés d'une carte

‍

Propriété Détail
DataField Nom interne du champ à mettre à jour de la soumission du formulaire
Default Valeur par défaut à afficher lorsque le formulaire est en mode View ou Edit à partir de l’item renseigné
DisplayName Nom du label pour ce champ, par défaut branché sur le display name de la colonne
MaxLength Taille max du champ, par défaut branché sur la longueur max du champ dans la source de données
Required Indique si le champ est obligatoire ou non (et conditionne l’affichage de l’astérisque). Par défaut, correspond à ce qui est renseigné dans la source lors de la création de la carte.
Update Valeur avec laquelle mettre à jour le champ lors de la soumission du formulaire

Les trois modes : création, modification, affichage

Mode Fonction Ce que fait le formulaire
Création NewForm(Formulaire1) Champs vides ou valeurs par défaut ; SubmitForm crée une ligne
Modification EditForm(Formulaire1) Affiche la ligne de la propriété Item ; SubmitForm la met à jour
Affichage ViewForm(Formulaire1) Lecture seule, rien n’est modifiable

On place ces fonctions sur un bouton : par exemple, le bouton « Nouvelle demande » exécute NewForm(Formulaire1); Navigate(EcranFormulaire). La propriété Mode du formulaire indique le mode en cours (FormMode.New, FormMode.Edit, FormMode.View) et permet d’adapter un titre ou un bouton.

Enregistrer : SubmitForm ou Patch

Pour enregistrer, une seule fonction : SubmitForm(Formulaire1), placée sur le bouton Enregistrer.

‍

SubmitForm sur PowerApps
Figure 10 : Submit Form sur Apps

‍

Au moment du SubmitForm, Power Apps lit la propriété Update de chaque carte et écrit ces valeurs dans la source. Trois propriétés du formulaire complètent l’enregistrement :

  • OnSuccess : ce qui se passe après un enregistrement réussi, par exemple Notify("Demande enregistrée", NotificationType.Success); Back().
  • OnFailure : ce qui se passe en cas d’échec, par exemple Notify(Formulaire1.Error, NotificationType.Error).
  • LastSubmit : la ligne qui vient d’être enregistrée, avec son identifiant, utile pour enchaîner (Formulaire1.LastSubmit.ID).

ResetForm(Formulaire1) vide les champs, par exemple sur un bouton Annuler.

Critère SubmitForm Patch
Usage Enregistrer un formulaire Écrire sans formulaire, ou réunir plusieurs formulaires
Contrôles de saisie Automatiques : champs obligatoires, types, longueur À écrire soi-même
Messages et suite OnSuccess, OnFailure, LastSubmit IfError, Notify, ligne renvoyée par Patch
Plusieurs formulaires Un SubmitForm par formulaire Patch(Source, Defaults(Source), Formulaire1.Updates, Formulaire2.Updates)

En règle générale : SubmitForm pour un formulaire classique, Patch dès qu’il faut écrire sans formulaire ou réunir plusieurs formulaires. Le détail est dans notre article sur la fonction Patch dans Power Apps.

‍

Valider la saisie et afficher des messages d’erreur

  • Champ obligatoire : propriété Required de la carte, à true ou à une condition, par exemple DataCardValue_Type.Selected.Value = "Externe".
  • Formulaire complet : Formulaire1.Valid vaut true quand tous les champs obligatoires sont remplis et conformes. On s’en sert pour activer le bouton Enregistrer : If(Formulaire1.Valid, DisplayMode.Edit, DisplayMode.Disabled) dans sa propriété DisplayMode.
  • Format : IsMatch vérifie une adresse e-mail ou un code, par exemple IsMatch(DataCardValue_Mail.Text, Match.Email), à placer dans la propriété Visible d’une étiquette d’avertissement ou dans la condition du bouton.
  • Message clair : l’étiquette ErrorMessage de chaque carte affiche l’erreur du champ ; Notify affiche un bandeau en haut de l’écran.

Afficher ou masquer un champ selon une réponse

Chaque carte a une propriété Visible. Pour n’afficher le champ « Précisez » que si l’utilisateur choisit « Autre » dans une liste de choix SharePoint : Visible = DataCardValue_Motif.Selected.Value = "Autre".

Deux précautions : rendez la carte obligatoire seulement quand elle est visible (Required = Self.Visible), sinon le formulaire refuse de s’enregistrer ; et, si besoin, videz la valeur masquée dans la propriété Update de la carte : If(Self.Visible, DataCardValue_Precision.Text, Blank()).

Mettre en forme un formulaire

Faire varier le nombre de colonnes à afficher

‍En modifiant le nombre de colonnes on peut dynamiser son formulaire et accorder plus de place aux cartes qui en ont besoin. Par exemple le formulaire ci-dessous est un formulaire basé sur 6 colonnes, avec l’option « aligner sur les colonnes » activée :

  • Première ligne chaque carte prend un espace de 2/6
  • Deuxième ligne chaque carte prend un espace de 3/6
  • Dernière ligne la carte prend un espace de 6/6

Grâce à cela je peux laisser plus d’espace pour la partie note qui nécessite une certaine longueur de champs.

‍

Faire varier le nombre de colonnes à afficher sur PowerApps
Figure 11 : Faire varier le nombre de colonnes à afficher

Utiliser des cartes personnalisées

‍Afin de créer des sections libres supplémentaires on peut utiliser des cartes personnalisées qui ne vont rien mettre à jour mais servir uniquement d’affichage ou de séparation dans un formulaire.

‍

Utiliser des cartes personnalisées sur PowerApps
Figure 12 : Utiliser des cartes personnalisées

‍

Rendre les champs Responsive

‍Si la taille de votre application varie en fonction de la taille de l’écran, il est utile d’activer l’option « Ajustement à la largeur » sur une carte de donnée. Cette option va permettre aux contrôles dans la carte de s’adapter en largeur automatiquement par rapport à la taille du parent.

‍

Rendre les champs responsives sur PowerApps
Figure 13 : Rendre les champs Responsive

Formulaire en plusieurs étapes

Pour une saisie longue, découpez le formulaire en étapes : un formulaire par étape, tous branchés sur la même source. Une variable indique l’étape affichée : le bouton Suivant exécute Set(varEtape, varEtape + 1), et la propriété Visible de chaque formulaire vaut varEtape = 1, varEtape = 2, et ainsi de suite. À la dernière étape, un seul Patch enregistre tout.

‍

Bon à savoir sur PowerApps
Bon à savoir sur PowerApps

Le Patch réunit les propriétés Updates de chaque formulaire : Patch(Demandes, Defaults(Demandes), Formulaire1.Updates, Formulaire2.Updates).

‍

Patch sur PowerApps
Figure 14 : La formule Patch sur PowerApps

‍

Performance : grandes listes et délégation

Le formulaire n’affiche qu’une ligne : il est rapide. Ce qui ralentit, c’est la galerie ou la recherche qui sert à choisir la ligne, et les listes déroulantes alimentées par une autre table. Sur une grande liste SharePoint ou une table Dataverse, utilisez des filtres délégables (Filter, Search, LookUp sur des colonnes indexées) et évitez de charger toute la table dans une collection.

Formulaires des applications pilotées par modèle

Les applications pilotées par modèle, construites sur Dataverse, ont leurs propres formulaires : on les dessine dans le concepteur de formulaires, sans formule Power Fx (formulaire principal, création rapide, affichage rapide). Les champs obligatoires et les champs à masquer s’y règlent par des règles métier. Le formulaire d’application canevas décrit dans cet article laisse plus de liberté de mise en page ; celui d’une application pilotée par modèle se construit plus vite sur des données Dataverse.

Pour progresser : notre formation Power Apps de 2 ou 3 jours, à partir de 3 500 € HT la session, finançable par votre OPCO et certifiée Qualiopi, et nos projets Power Apps sur mesure.

À lire aussi :

Questions fréquentes

Comment créer un formulaire dans Power Apps ?

Insérez un contrôle Formulaire, choisissez la source de données (DataSource), indiquez la ligne à afficher dans la propriété Item, puis ajoutez un bouton qui exécute SubmitForm. Les cartes sont créées automatiquement, une par champ.

Quelle différence entre SubmitForm et Patch ?

SubmitForm enregistre un formulaire en vérifiant les champs obligatoires et les types, avec OnSuccess et OnFailure pour la suite. Patch écrit dans une source sans formulaire, ou réunit plusieurs formulaires avec leurs propriétés Updates ; les contrôles de saisie sont alors à écrire soi-même.

Comment rendre un champ obligatoire selon une condition ?

Dans la propriété Required de la carte, remplacez true par une condition, par exemple DataCardValue_Type.Selected.Value = "Externe". Le formulaire refusera l’enregistrement tant que le champ est vide et que la condition est vraie.

Comment afficher un champ selon une réponse ?

Réglez la propriété Visible de la carte sur une condition, par exemple DataCardValue_Motif.Selected.Value = "Autre", et sa propriété Required sur Self.Visible pour ne pas bloquer l’enregistrement quand le champ est masqué.

Comment faire un formulaire en plusieurs étapes ?

Créez un formulaire par étape sur la même source, affichez-les tour à tour avec une variable (Set(varEtape, 2)) dans leur propriété Visible, puis enregistrez tout à la dernière étape avec Patch(Source, Defaults(Source), Formulaire1.Updates, Formulaire2.Updates).

Un projet Power Platform ?

Faites-nous part des défis de votre entreprise et nous vous aiderons à dynamiser votre activité.

Réserver un audit gratuit

Votre prochain processus mérite mieux qu'un Excel.

Premier échange de 40 minutes offert : on analyse vos fichiers, identifie ce qui peut être automatisé, et vous donne un plan d'action clair.