Skip to content
Power Platform - Apps - Automate - SharePoint
  • Pages
    • Support Power Platform - Power Apps - Power Automate
      • Licences
      • Mises à jour (waves)
      • Environnement & Solutions
        • Attribuer des droits sur un environnement
      • Power BI
      • Liens vers nos supports
    • Architecture Power Platform
      • Modéliser des données
    • Administrer Power Platform
      • Références
      • Sécurité
      • Center of Excellent (CeE)
      • Application Lifecycle Management (ALM) [WiP]
    • Power Apps
      • Références
      • Différence entre le développement impératif et le développement déclaratif
      • Les types d’objets dans Power Apps Canvas
      • Process de développement d'applications PowerApps
        • Contrôles
        • Contrôles modernes
        • Charte de nommage et bonnes pratiques Power Apps Canvas
      • Power Apps - Fonctions principales
        • Tips Fonctions
        • Fonction Patch
          • Patch des types complexes d'une liste SharePoint
        • ForAll, GroupBy et AddColumns dans Power Apps Canvas
        • Les formules nommées (Formulas) dans Power Apps Canvas
      • Modes opératoires
        • Application Canvas - Guide de survie (Liste SP pour mobile)
          • Création d’une application Power Apps Canvas mobile et Excel [WiP]
          • Création d’une application Power Apps Canvas
        • Flux PowerAutomate à partir de Power Apps
        • Compléter un modèle Word et générer un PDF [Premium]
        • Récupérer une photo depuis la caméra
        • Listes en cascade
        • Sélectionner un utilisateur (Liste SP)
        • Partager une application Power Apps
        • icon picker
          Création d’un composant MsgBox de confirmation de suppression
      • AI Builder dans Power Apps
      • Gestion du cycle de vie d’une application Power Apps (ALM)
      • Alternatives à PowerApps
      • Applications basées sur un modèle (model driven apps)
        • Modèles Word avec une application pilotée par modèle
        • Lancer un flux depuis un bouton d'une application pilotée par modèle
        • Ressources JavaScript
      • Développeur
        • JS
        • Outils externes
        • Bibliothèque de composants
      • Quizz
    • Power Automate
      • Références
      • Syntaxe générale
      • Fonctions
        • JSON
        • Tips
        • Manipulations fichiers SharePoints [ToDo]
      • Modes opératoires
        • Approbations
          • Généralités
          • Approbations simples
          • [Exo] Commande fournisseur
        • [WiP] Ajouter un bouton de colonne SharePoint qui exécute un flux
        • Créer un PDF à partir de code HTML avec image
        • [WiP] Exécuter un flux depuis une ligne sélectionnée dans Excel
          • Copier un fichier depuis une PJ Outlook
        • Envoyer "en tant que"
        • Compter des éléments, même supprimés (table Audits)
      • AI Builder dans Power Automate
      • Alternatives à Power Automate
      • Power Automate pour le Bureau (PA
        • Ressources pédagogiques
    • Dataverse
      • Références
      • Common Data Model
      • Tables [WIP]
      • Colonnes [WIP]
      • Sécurité
      • Développeur
      • Référence automatique
      • Application pilotée par modèle
        • Exemple pratique
        • Migration depuis Access
    • copilot
      Copilot
      • copilot-studio
        Copilot Studio
      • copilot
        [Exo] Copilot
        • Copilot pour Power Apps (Office Agent)
        • [Exo1] Créer une application Canvas
        • [Exo2] Créer une application Canevas Power Apps pour une solution immobilière à l’aide de Copilot dans Power Apps
        • [Exo3] Générer du texte avec GPT dans AI Builder
        • [Exo4] Créer un site Web Power Pages avec Copilot
        • [Exo5] Créer un copilote pour une solution immobilière à l’aide du langage naturel dans Copilot Studio
        • [Exeo6@ Prédiction avec AI Builder
      • power-automate
        Copilot pour Power Automate
      • power-apps
        Copilot pour Power Apps
    • Microsoft 365 & SharePoint
      • Vue d'ensemble de Microsoft 365 et SharePoint
      • Déroulé pédagogique
        • Module 1 : Microsoft 365 et SharePoint Online
        • Module 2 : Bibliothèques et listes
        • Module 3 : Intégration Office et gestion des documents
        • Module 4 : Type de contenu
        • Module 5 : Personnalisation des pages
        • Module 6 : Personnalisation des sites et des espaces de travail
        • Module 7 : Gestion de la sécurité
        • Module 8 : Workflows Power Automate
      • Bonnes pratiques
      • Sites SharePoint
        • Types de sites
        • Hiérarchies de sites
          • Sous-sites vs Hubs de sites
        • Créer un site
        • Principaux composants
          • Navigation
          • Composant WebPart dans les pages
          • Bibliothèques de document & Listes
          • Lien avec Teams
        • Pages d'un site SharePoint
        • Partage de flux d'un fichier ou d'un élément sélectionné
      • Listes SharePoint
        • Créer une liste
          • Créer une colonne
          • Gérer les vues
        • Power Automate avec des listes SharePoint
        • Mettre à jour une Liste SharePoint depuis Excel
        • TIPS
      • Bibliothèques de fichiers & dossiers SharePoint [WiP]
        • Rétention
        • Généralités
          • Création d'un nouveau document
          • Associer un modèle de document
          • Affichage et modification de documents dans le navigateur
          • Affichage et modification de documents dans le client
          • Téléchargement de documents
          • Déplacement et copie de documents
          • Affichage et modification des paramètres de la bibliothèque de documents
          • Paramètres de gestion des versions, approbation du contenu et extraction de documents
      • Intégration Power Apps
      • Droits & sécurité
      • API
      • Administration & rôles
    • Exercices
      • pl-7001
        PL-7001 - Power Apps Canvas
        • Lab 0 – Valider l'environnement de laboratoire
        • Lab 1 – Créer une application canevas à partir de données
        • Lab 2 – Modèle de données
        • Lab 3 – Créer une application canevas
        • Lab 4 – Créer l'interface utilisateur
        • Lab 5 – Données externes
        • Lab 6 – Formulaires
        • Lab 7 – Gérer les applications canevas
      • pl-7002
        PL-7002 - Power Automate
        • Lab 0 - Vérifier l’environnement de labo
        • Lab 1 - Créer des flux de cloud
        • Lab 2 - Modèle de données Dataverse
        • Lab 3 - SharePoint
        • Lab 4 - Flux d’approbation [SP]
        • Lab 5 - Flux de bouton [DV]
        • Lab 6 - Flux planifié [SP]
        • Lab 7 - Filtres de déclencheur [DV]
    • Exos Power Apps Power Automate
      • [Exo A] Flux avec une liste SharePoint
      • [Exo06] Créer une application Canvas avec Copilot
      • Flux avec une table Dataverse
        • Créer la source Dataverse
        • Créer le flux de bouton
        • Créer un flux automatisé avec filtre
      • Flux avec une liste SharePoint

Création d’un composant MsgBox de confirmation de suppression

Conception du composant

Le composant prendra en entrée un enregistrement (record) plutôt qu’une table, car une demande de suppression concerne généralement un élément unique sélectionné par l’utilisateur. Le composant exposera également une propriété de sortie pour communiquer la réponse de l’utilisateur à l’écran parent.

Étape 1 : créer le composant

Dans le volet gauche, cliquez sur Composants
Cliquez sur Nouveau composant
Renommez-le cmpConfirmationSuppression
Définissez les dimensions : largeur 400, hauteur 200

Étape 2 : définir les propriétés personnalisées

Dans le panneau de propriétés du composant, ajoutez les propriétés suivantes :

Propriétés d’entrée

Nom de propriété
Type
Description
Visible
Booléen
Contrôle l’affichage du composant
EnregistrementASupprimer
Enregistrement
L’enregistrement concerné par la suppression
ChampAffichage
Texte
Nom du champ à afficher dans le message
TitreBoite
Texte
Titre personnalisable de la boîte de dialogue
There are no rows in this table

Propriété de sortie

Nom de propriété
Type
Description
ReponseUtilisateur
Texte
Valeur retournée : “Confirmer”, “Annuler” ou “Aucune”
There are no rows in this table

Configuration des propriétés

Pour créer chaque propriété :
Sélectionnez le composant cmpConfirmationSuppression
Dans le panneau de droite, cliquez sur Nouvelle propriété personnalisée
Renseignez les paramètres selon le tableau ci-dessous
Propriété : Visible
Type de propriété : Entrée
Type de données : Booléen
Valeur par défaut : false

Propriété : EnregistrementASupprimer
Type de propriété : Entrée
Type de données : Enregistrement
Valeur par défaut : {ID: 0, Libelle: ""}

Propriété : ChampAffichage
Type de propriété : Entrée
Type de données : Texte
Valeur par défaut : "Libelle"

Propriété : TitreBoite
Type de propriété : Entrée
Type de données : Texte
Valeur par défaut : "Confirmation de suppression"

Propriété : ReponseUtilisateur
Type de propriété : Sortie
Type de données : Texte

Étape 3 : construire l’interface du composant

Fond semi-transparent (overlay)

Ajoutez un contrôle Rectangle nommé rectOverlay :
X: 0
Y: 0
Width: Parent.Width
Height: Parent.Height
Fill: RGBA(0, 0, 0, 0.5)
Visible: Parent.Visible

Conteneur principal de la boîte de dialogue

Ajoutez un contrôle Rectangle nommé rectBoiteDialogue :
X: (Parent.Width - Self.Width) / 2
Y: (Parent.Height - Self.Height) / 2
Width: 350
Height: 180
Fill: White
BorderColor: RGBA(200, 200, 200, 1)
BorderThickness: 1
Visible: Parent.Visible

Barre de titre

Ajoutez un contrôle Rectangle nommé rectBarreTitre :
X: rectBoiteDialogue.X
Y: rectBoiteDialogue.Y
Width: rectBoiteDialogue.Width
Height: 40
Fill: RGBA(220, 53, 69, 1)
Visible: Parent.Visible

Libellé du titre

Ajoutez un contrôle Libellé (Label) nommé lblTitre :
X: rectBarreTitre.X + 10
Y: rectBarreTitre.Y + 5
Width: rectBarreTitre.Width - 20
Height: 30
Text: Parent.TitreBoite
Color: White
Font: Font.'Segoe UI'
FontWeight: FontWeight.Semibold
Size: 14
Visible: Parent.Visible

Icône d’avertissement

Ajoutez un contrôle Icône nommé icoAvertissement :
X: rectBoiteDialogue.X + 15
Y: rectBoiteDialogue.Y + 55
Width: 32
Height: 32
Icon: Icon.Warning
Color: RGBA(220, 53, 69, 1)
Visible: Parent.Visible

Message de confirmation

Ajoutez un contrôle Libellé nommé lblMessage :
X: icoAvertissement.X + icoAvertissement.Width + 10
Y: rectBoiteDialogue.Y + 50
Width: rectBoiteDialogue.Width - icoAvertissement.Width - 40
Height: 50
Text: "Voulez-vous supprimer l'enregistrement « " &
Text(LookUp(
Table(Parent.EnregistrementASupprimer),
true
).(Parent.ChampAffichage)) &
" » ?"
Color: RGBA(50, 50, 50, 1)
Font: Font.'Segoe UI'
Size: 12
Visible: Parent.Visible
Note : si la formule ci-dessus pose problème, utilisez cette alternative simplifiée :
Text: "Voulez-vous supprimer cet enregistrement ?"

Bouton Annuler

Ajoutez un contrôle Bouton nommé btnAnnuler :
X: rectBoiteDialogue.X + 20
Y: rectBoiteDialogue.Y + rectBoiteDialogue.Height - 50
Width: 120
Height: 35
Text: "Annuler"
Fill: RGBA(108, 117, 125, 1)
Color: White
BorderRadius: 4
Visible: Parent.Visible

OnSelect: Select(Parent)

Bouton Confirmer

Ajoutez un contrôle Bouton nommé btnConfirmer :
X: rectBoiteDialogue.X + rectBoiteDialogue.Width - 140
Y: rectBoiteDialogue.Y + rectBoiteDialogue.Height - 50
Width: 120
Height: 35
Text: "Supprimer"
Fill: RGBA(220, 53, 69, 1)
Color: White
BorderRadius: 4
Visible: Parent.Visible

OnSelect: Select(Parent)

Étape 4 : gérer la propriété de sortie

Pour la propriété ReponseUtilisateur, définissez la formule suivante dans sa définition :
If(
btnConfirmer.Pressed,
"Confirmer",
If(
btnAnnuler.Pressed,
"Annuler",
"Aucune"
)
)

Étape 5 : utilisation du composant dans un écran

Données de test

Dans la propriété OnVisible de l’écran :
ClearCollect(
colClients,
{ ID: 1, Nom: "Dupont", Prenom: "Marie", Ville: "Paris" },
{ ID: 2, Nom: "Martin", Prenom: "Pierre", Ville: "Lyon" },
{ ID: 3, Nom: "Bernard", Prenom: "Sophie", Ville: "Marseille" }
)

Variable de contrôle

Ajoutez également :
UpdateContext({
locAfficherConfirmation: false,
locEnregistrementSelectionne: Blank()
})

Galerie d’affichage

Ajoutez une galerie galClients avec :
Items: colClients
TemplateSize: 60
Dans la galerie, ajoutez un libellé et un bouton de suppression :
Libellé :
Text: ThisItem.Nom & " " & ThisItem.Prenom & " - " & ThisItem.Ville
Bouton supprimer (icône poubelle) :
OnSelect: UpdateContext({
locAfficherConfirmation: true,
locEnregistrementSelectionne: ThisItem
})

Instance du composant

Ajoutez le composant cmpConfirmationSuppression sur l’écran avec ces propriétés :
Visible: locAfficherConfirmation
EnregistrementASupprimer: locEnregistrementSelectionne
ChampAffichage: "Nom"
TitreBoite: "Supprimer ce client ?"

Gestion de la réponse

Dans la propriété OnSelect du composant (au niveau de l’écran) :
If(
cmpConfirmationSuppression_1.ReponseUtilisateur = "Confirmer",
// Supprimer l'enregistrement
Remove(colClients, locEnregistrementSelectionne);
UpdateContext({ locAfficherConfirmation: false });
Notify("Enregistrement supprimé", NotificationType.Success),
// Si annulation
If(
cmpConfirmationSuppression_1.ReponseUtilisateur = "Annuler",
UpdateContext({ locAfficherConfirmation: false })
)
)

Alternative : utilisation avec une propriété comportementale

Pour une approche plus élégante, vous pouvez créer des propriétés de type comportement (behavior) sur le composant.

Propriétés comportementales à ajouter

Propriété : OnConfirm
Type de propriété : Comportement
Type de données : Booléen

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.