ES
ERVIS SEFERI
Finance · Business · Technologie
← Retour · Je partage mes connaissances
IA & Automatisation · Power BI

Le rôle qui fausse l'écart au budget

Un rôle de sécurité restreint le réel au périmètre d'un responsable et laisse le budget entier : l'écart affiché devient faux, sans aucune erreur. Démonstration chiffrée, et la règle pour poser un rôle au bon endroit.

Dans le cadre de la rubrique « Je partage mes connaissances », je vous propose de poser une sécurité au niveau des lignes sur un rapport réel contre budget, puis de vérifier ce qu'elle fait vraiment aux chiffres. Le modèle est celui du rapport budgétaire construit dans une série précédente : un grand livre 2025-2026, un plan comptable hiérarchisé, quatre centres de coûts et un budget mensuel 2026. L'outil est Power BI Desktop, onglet Modélisation.

La demande est banale : chaque responsable de centre de coûts ne doit voir que son périmètre. La mise en place prend dix minutes. Le problème apparaît quand on regarde l'écart au budget sous un rôle.

Schéma : le rôle Responsable Siege filtre la dimension des centres de coûts, le filtre descend vers le grand livre (réel -57 550,00) mais pas vers le budget, qui n'a pas de colonne Journal (-33 266,47) ; l'écart affiché vaut -24 283,53
Le rôle filtre ce qui est relié à la table filtrée, rien d'autre. Le réel se restreint, le budget reste entier, et l'écart compare deux périmètres différents.

Pourquoi la sécurité devient une question de chiffres

Tant qu'un rapport vit dans un fichier Power BI Desktop, celui qui l'ouvre voit tout. Le jour où il est publié pour plusieurs responsables, il faut restreindre. Power BI le fait avec des rôles : une expression de filtre, évaluée ligne par ligne, appliquée avant tout le reste.

Le réflexe est de vérifier qu'un rôle « marche » en regardant un écran : le responsable du Siège ne voit que le Siège, c'est bon. Ce test ne suffit pas. Un rôle ne change pas seulement ce qu'on voit. Il change ce que les mesures calculent. Et une mesure qui compare deux tables peut se mettre à mentir sans le moindre message d'erreur.

Créer les rôles, au bon endroit

Énoncé

Créer un rôle par centre de coûts - Commercial, Production, Siège, Trésorerie - pour que chaque responsable ne voie que les écritures de son centre.

Solution étape par étape

  1. Ouvrir le modèle. Onglet Modélisation > Gérer les rôles, puis Créer.
  2. Nommer le rôle Responsable Siege, sans accent : le nom sera repris dans le service Power BI, et un accent y est une source d'erreur inutile.
  3. Dans la liste des tables, sélectionner dim centre couts - la dimension, pas le grand livre. Écrire l'expression de filtre [CentreCouts] = "Siege" et valider par la coche.
  4. Répéter pour les trois autres centres, avec "Commercial", "Production" et "Tresorerie". Enregistrer.

Une expression de rôle n'est pas une mesure. Pas de CALCULATE, pas d'agrégation : c'est un booléen, vrai ou faux pour chaque ligne de la table choisie. Les lignes vraies restent visibles, et le filtre descend vers le grand livre par la relation un-à-plusieurs sur la colonne Journal.

Tester par comparaison, jamais rôle par rôle

Énoncé

Afficher le rapport sous chacun des quatre rôles et relever le résultat net réel 2026, le résultat net budget 2026 et l'écart que le rapport affiche.

Solution étape par étape

  1. Modélisation > Afficher en tant que, cocher Responsable Siege, puis OK. Une bannière jaune rappelle en haut du rapport le rôle actif.
  2. Relever les trois valeurs sur une carte ou un tableau : réel, budget, écart.
  3. Recommencer pour les trois autres rôles. Écrire les quatre relevés dans un même tableau avant de conclure quoi que ce soit.
  4. Afficher en tant que > Aucun pour revenir à la vue complète.

Résultat attendu

Rôle actifRésultat net réel 2026Résultat net budget 2026Écart affiché
aucun-41 785,50-33 266,47-8 519,03
Responsable Commercial+23 800,00-33 266,47+57 066,47
Responsable Production-8 035,50-33 266,47+25 230,97
Responsable Siege-57 550,00-33 266,47-24 283,53
Responsable Tresorerievide-33 266,47+33 266,47

Le réel se comporte exactement comme prévu. Commercial +23 800,00, Production -8 035,50, Siège -57 550,00 : la somme vaut -41 785,50, le total global. La Trésorerie ne porte aucune écriture de résultat en 2026, son réel est vide. Dans une matrice par centre de coûts, sa ligne n'apparaît même pas tant qu'on n'a pas activé Afficher les éléments sans données sur le champ.

Le budget, lui, ne bouge pas d'un centime. Sous les quatre rôles, il reste à -33 266,47.

Pourquoi le budget ne bouge pas

Le fichier budget_2026.csv n'a pas de colonne Journal. Il est relié au plan comptable et au calendrier, pas aux centres de coûts. Le rôle filtre la dimension des centres ; le filtre descend vers ce qui lui est relié, le grand livre, et s'arrête là.

Pour le responsable du Siège, cela donne un réel de -57 550,00 comparé au budget de toute l'entreprise, et un écart affiché de -24 283,53. Ce chiffre n'a aucun sens. Il n'est ni signalé ni grisé : il a l'air d'un vrai écart. Le responsable Commercial, lui, lit un écart favorable de +57 066,47. Il compare son chiffre d'affaires à un budget qui contient les salaires du Siège.

Un rôle ne rend pas un rapport juste, il le rend partiel. Toute mesure qui compare une table filtrée par le rôle à une table qui ne l'est pas devient fausse sous ce rôle, en silence.

Testé rôle par rôle, le défaut passe inaperçu : chaque écran, pris seul, est plausible. C'est l'alignement des quatre relevés, avec le même budget sur chaque ligne, qui le trahit. Le tableau de comparaison est le livrable du test.

Le rôle posé sur les faits : même chiffre, autre rapport

Énoncé

Un collègue a créé le rôle Production en écrivant son filtre sur le grand livre : [Journal] = "AC". Le résultat net affiché est juste. Il en conclut que le rôle est bon. Montrer qu'il a tort.

Solution étape par étape

  1. Créer un rôle Test Production faux sur la table grand livre, avec le filtre [Journal] = "AC".
  2. Créer un rôle Test Production juste sur la table dim centre couts, avec le filtre [CentreCouts] = "Production".
  3. Sur une page de contrôle, poser une carte Résultat net, une carte avec la mesure Centres visibles := COUNTROWS ( 'dim centre couts' ), une matrice par centre de coûts et un segment sur dim centre couts[CentreCouts].
  4. Afficher le rapport sous chacun des deux rôles, relever les quatre éléments, puis revenir à Aucun.

Résultat attendu

Deux panneaux comparés : avec le filtre sur le grand livre, le résultat net vaut -8 035,50, quatre centres restent visibles et le segment propose Commercial, Production, Siège et Trésorerie ; avec le filtre sur la dimension, le résultat net vaut -8 035,50, un seul centre est visible et le segment ne propose que Production
Le même -8 035,50 des deux côtés. La différence est ailleurs : posé sur les faits, le rôle laisse la liste des centres visible, et un clic sur Siège ressemble à une absence d'activité.
ContrôleFiltre sur le grand livreFiltre sur la dimension
Résultat net réel 2026-8 035,50-8 035,50
Centres visibles41
Matrice par centre de coûtsProduction seule renseignée, les autres membres restent sélectionnablesProduction seule
Segment CentreCoutsCommercial, Production, Siège, TrésorerieProduction

Les deux rôles donnent le même résultat net et ne sont pas équivalents. Posé sur les faits, le filtre laisse la dimension intacte : le segment propose toujours les quatre centres. Cliquer sur Siège renvoie un rapport vide, qui se lit « pas d'activité au Siège ». C'est faux : c'est « pas le droit de voir ». La structure de l'entreprise fuit par le segment.

Un filtre de rôle se pose sur la dimension. Il descend vers les faits par la relation un-à-plusieurs. Posé sur les faits, il ne remonte pas.

C'est la même mécanique que le sens unique du filtre entre dimension et faits, vue sur le modèle de compte de résultat : un rôle n'est qu'un filtre de plus, évalué avant tous les autres.

Deux points qui se jouent hors du fichier

  • La sécurité au niveau des lignes s'applique aux lecteurs. Un utilisateur qui a des droits d'édition sur l'espace de travail - Administrateur, Membre ou Contributeur - voit tout, quel que soit son rôle. Un rôle testé en local peut donc ne rien filtrer une fois publié, si les responsables ont été ajoutés comme membres de l'espace.
  • Ce modèle lit quatre fichiers CSV sur un disque local. Une actualisation planifiée du rapport publié demande une passerelle de données, ou le déplacement des fichiers vers un stockage que le service atteint directement.

Ce qu'il reste à régler

Le défaut du budget n'est pas dans la sécurité, il est dans le modèle. Deux corrections existent. Ventiler le budget par centre de coûts : utile, mais le fichier livré ne le permet pas. Ou écrire une mesure d'écart qui refuse de répondre dès que le périmètre est restreint : honnête, et faisable tout de suite. Les deux valent mieux qu'un chiffre faux.

Cette mesure protégée, et le passage de quatre rôles statiques à un seul rôle dynamique, font l'objet de l'article suivant.

La suite : une mesure d'écart qui refuse de répondre sous un rôle, puis un seul rôle dynamique à la place de quatre : L'écart qui refuse de répondre.

Versions : article rédigé d'après Power BI Desktop, mise à jour d'août 2026 (interface en français). Les fonctions DAX utilisées (COUNTROWS) sont disponibles dans les versions actuelles ; les noms de menus peuvent changer au fil des mises à jour mensuelles.