3.2 · Mise en forme conditionnelle

Niveau 3 · Avancé : formules & mise en forme conditionnelle

3.2Mise en forme conditionnelle

Objectif : écrire des formules de propriété (couleur, fond, visibilité) qui mettent en évidence l'important, avec parcimonie et cohérence.
Temps estimé : 10 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

L'essentiel en 30 secondes

  • L'apparence réagit aux données : chaque propriété de mise en forme a son bouton formule (x-2) — on y écrit une formule qui renvoie la valeur de la propriété, évaluée ligne par ligne.
  • La formule renvoie le bon type : une couleur pour une couleur (crRed, crYellow), un booléen pour la visibilité, un style pour le gras — ex. If {Montant} < 0 Then crRed Else crBlack.
  • Signaler, pas décorer : négatifs en rouge, seuils surlignés, statuts colorés — avec parcimonie et un code couleur constant (rouge = problème partout).

Mini-cas filé — Farès fait parler ses soldes

Farès, contrôleur de gestion à Alger, envoie chaque semaine un état des soldes clients : un tableau noir sur blanc où les impayés se noient dans la masse — la direction ne voit rien. Il clique le bouton formule (x-2) de la couleur de police du champ Solde et écrit If {Clients.Solde} < 0 Then crRed Else crBlack, puis colore le fond en jaune quand le retard dépasse 30 jours. Le lundi suivant, les soldes négatifs sautent aux yeux en rouge : la réunion recouvrement part des vrais cas au lieu de relire tout le tableau.

Ce même cas revient dans le cours, le schéma, le script et le défi 48h.

1. Le mécanisme : une formule par propriété (bouton x-2)

La mise en forme conditionnelle change l'APPARENCE d'un objet (couleur de police, couleur de fond, style, bordure, taille, visibilité) selon une CONDITION sur les données. Le mécanisme : pour presque chaque propriété, un petit bouton formule (icône « x-2 ») ouvre un éditeur où l'on écrit une formule qui renvoie la valeur de la propriété — et Crystal Reports l'applique dynamiquement, valeur par valeur. Exemple pour la couleur de police d'un montant : « If {Commandes.Montant} < 0 Then crRed Else crBlack » — négatifs en rouge, le reste en noir.

Point clé : la formule est évaluée pour CHAQUE occurrence de l'objet (chaque ligne), donc l'apparence varie ligne par ligne selon les données. Et elle doit renvoyer une valeur du TYPE de la propriété : une COULEUR pour une couleur (crRed, crBlack, crYellow, crNoColor), un BOOLÉEN pour la visibilité (Vrai = masquer via Suppress), un style pour le gras. Se tromper de type, c'est la panne classique du débutant.

2. Mettre en évidence avec sens : cas courants et discipline

Les cas qui servent vraiment : montants négatifs en rouge (couleur de police), seuil dépassé surligné (fond jaune quand le stock passe sous 10 : If {Stocks.Quantite} < 10 Then crYellow Else crNoColor), statuts colorés (« En retard » rouge, « OK » vert), gros montants en gras. Choisir la BONNE propriété : couleur de POLICE pour teinter le chiffre, couleur de FOND pour surligner toute la cellule (plus visible), STYLE gras pour souligner sans couleur.

La discipline qui sépare le pro du sapin de Noël : parcimonie (mettre en évidence l'IMPORTANT — trop de couleurs conditionnelles brouillent tout) et cohérence (le même code couleur partout : rouge = problème/négatif, jamais l'inverse). À distinguer du masquage conditionnel de section (2-5) : ici l'objet reste AFFICHÉ mais change d'aspect ; là-bas la section apparaît ou disparaît. Les deux se combinent : colorer l'alerte ET n'afficher la section d'alerte que si besoin.

Erreur d'interprétation fréquente : « La mise en forme conditionnelle, c'est de la déco : plus il y a de couleurs, plus le rapport est pro ». Non : c'est un langage de SIGNALEMENT, pas de décoration. Chaque couleur doit répondre à « qu'est-ce que l'œil doit voir en premier ? » — au-delà de trois codes couleur, plus personne ne lit rien. Une couleur = un message, le même partout : c'est tout.
Faire réagir l'apparence aux données Propriété, formule, type renvoyé Propriété + x-2Couleur, fond, gras, visibilité+Formule conditionnelleIf … Then couleur Else couleur+Évaluée par ligneLe bon type renvoyé, code constant Colorer l'alerte ; masquer la section, c'est un autre mécanisme (2-5).
Propriété, formule, type renvoyé
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Propriété : Farès vise la couleur de police du champ Solde via le bouton x-2, pas tout le rapport. 2) Formule : If solde < 0 Then crRed Else crBlack — une couleur selon la condition, évaluée ligne par ligne. 3) Discipline : rouge réservé au problème, jaune au seuil critique, rien d'autre en couleur. Leçon : une couleur = un message, répété partout pareil.

Le sapin de Noël

« Farès avait mis sept couleurs conditionnelles : la direction a demandé si c'était un rapport ou une décoration de fin d'année. »
Depuis, deux couleurs et pas une de plus

Un rapport qui clignote ne signale plus rien.

🔎 Exemple concret — Soldes en rouge, stocks critiques en jaune

Farès applique ses deux premières formules d'apparence en syntaxe Crystal.

Police du solde : If {Clients.Solde} < 0 Then crRed Else crBlack
Fond du stock : If {Stocks.Quantite} < 10 Then crYellow Else crNoColor
→ aperçu : l'apparence varie ligne par ligne.

Lecture : l'œil tombe d'abord sur le rouge et le jaune — exactement le but.

Leçon : renvoyer une couleur pour une couleur, un booléen pour la visibilité.

Vocabulaire de la section

Mise en forme conditionnelle
Changer l'apparence d'un objet (couleur, police, fond, visibilité…) selon une condition sur les données : l'apparence réagit aux valeurs.

Exemple simple : Les soldes négatifs de Farès affichés en rouge.

Ce que ce n'est pas : un tableau noir sur blanc où les impayés se noient.

Réflexe : dès qu'une valeur doit sauter aux yeux, la conditionner.

Bouton formule de propriété (x-2)
Petit bouton à côté de presque chaque propriété de mise en forme ; on y écrit la formule qui renvoie la valeur de la propriété.

Exemple simple : Le x-2 de la couleur de police du champ Solde.

Ce que ce n'est pas : recolorer les cellules à la main une par une.

Réflexe : chercher le x-2 avant toute retouche manuelle.

Formule conditionnelle d'apparence
Formule renvoyant la valeur d'une propriété selon une condition, ex. If {Montant} < 0 Then crRed Else crBlack.

Exemple simple : Le fond jaune de Farès quand le stock passe sous 10.

Ce que ce n'est pas : une formule qui renvoie du texte pour une couleur.

Réflexe : toujours renvoyer le type attendu par la propriété.

Évaluation par occurrence
La formule est évaluée pour chaque occurrence de l'objet (chaque ligne) : l'apparence varie ligne par ligne.

Exemple simple : Chaque solde client coloré selon SA valeur.

Ce que ce n'est pas : une couleur unique figée pour toute la colonne.

Réflexe : vérifier en aperçu que ça varie bien par ligne.

Code couleur cohérent
Même signification des couleurs partout dans le rapport (rouge = problème/négatif), avec parcimonie.

Exemple simple : Le rouge réservé aux soldes négatifs et aux retards chez Farès.

Ce que ce n'est pas : du rouge pour les bons résultats dans un tableau et les mauvais dans un autre.

Réflexe : figer 2-3 codes et ne plus en changer.

En pratique — Appliquer une mise en forme conditionnelle

  1. Sélectionnez un champ (ex. Montant), ouvrez son format et repérez le bouton FORMULE (x-2) à côté d'une propriété (couleur de police).
  2. Écrivez une formule conditionnelle : If {Montant} < 0 Then crRed Else crBlack → les négatifs en rouge.
  3. Essayez d'autres propriétés : couleur de FOND selon un seuil, VISIBILITÉ (masquer si condition), gras si valeur remarquable.
  4. Vérifiez en aperçu que l'apparence varie bien ligne par ligne ; gardez un code couleur constant (rouge = problème).
Vous reliez l'apparence aux données : le rapport signale visuellement l'information clé — un atout pour la lisibilité et la décision.

Script prêt à dire — présenter l'état qui signale (30 s)

« Ce n'est plus un tableau à relire en entier : les soldes négatifs apparaissent en rouge, les retards de plus de 30 jours en jaune. Même code partout — rouge veut toujours dire problème. On part directement des cas signalés en réunion recouvrement. »

À dire en présentant l'état ; projeter l'aperçu avec les couleurs.

Modèle copier-coller — formules d'apparence (syntaxe Crystal)

// Négatifs en rouge (couleur de police)
If {Clients.Solde} < 0 Then crRed Else crBlack
// Stock critique surligné (couleur de fond)
If {Stocks.Quantite} < 10 Then crYellow Else crNoColor
// Statut coloré
If {Commandes.Statut} = "En retard" Then crRed
Else If {Commandes.Statut} = "OK" Then crGreen Else crBlack

Indépendant

Deux formules de couleur bien placées et votre état signale tout seul ce qui compte.

PME à Alger

Farès colore soldes et retards : la réunion recouvrement part des cas rouges.

Équipe projet

Figer le code couleur du rapport dans la charte (rouge = problème) avant de multiplier les états.

Débutant

Cette semaine : une couleur de police + une couleur de fond conditionnelles, testées en aperçu.

✓ Bonnes pratiques

  • Choisissez la bonne propriété : police pour teinter, fond pour surligner, gras pour souligner sans couleur.
  • Renvoyez toujours le type attendu (couleur, booléen, style) — première cause de panne.
  • Limitez-vous à 2-3 codes couleur et gardez le même sens partout dans le rapport.

✗ Pièges fréquents

  • Colorer pour décorer : au-delà de trois codes, plus personne ne lit rien.
  • Inverser le code d'un tableau à l'autre (rouge = bon ici, mauvais là).
  • Confondre mise en forme conditionnelle (change l'aspect) et masquage de section (fait disparaître).

Points clés à retenir

  • La MISE EN FORME CONDITIONNELLE relie l'apparence aux données via une formule sur une propriété (bouton x-2), évaluée LIGNE PAR LIGNE.
  • Ex. couleur : If {Montant} < 0 Then crRed Else crBlack — la formule renvoie le TYPE de la propriété (couleur, booléen, style).
  • Usages rois : négatifs en rouge, seuils surlignés, statuts colorés, valeurs remarquables en gras.
  • AVEC SENS et parcimonie, de façon COHÉRENTE (rouge = problème partout) — sinon c'est du bruit.

Défi 48h — appliquez demain

Ajoutez 2 formules d'apparence à votre état réel (1 couleur de police + 1 fond) et faites valider le code couleur par un collègue.

Checklist sortie de section
  • Mon état signale l'important sans relecture intégrale.
  • Mes formules renvoient le type attendu par chaque propriété.
  • Mon code couleur est limité et constant partout.
Auto-évaluation 1-5 : un nouveau lecteur repère-t-il les alertes en dix secondes ?ai-je plus de trois codes couleur dans le même rapport ?

Questions fréquentes

Comment mettre en évidence des valeurs (négatifs, seuils, statuts) ?

Sélectionnez l'objet, ouvrez sa mise en forme, cliquez le BOUTON FORMULE (x-2) de la propriété voulue et écrivez la formule. Cas courants : négatifs en rouge (couleur de police : If {Montant} < 0 Then crRed Else crBlack) ; seuil surligné (fond : If {Stock} < 10 Then crYellow Else crNoColor) ; statut coloré (If {Statut} = « En retard » Then crRed Else If {Statut} = « OK » Then crGreen Else crBlack) ; gros montants en gras (style). Bonnes pratiques : choisir la BONNE propriété (police pour teinter, fond pour surligner, gras sans couleur), renvoyer le BON TYPE (couleur pour une couleur — crRed, crYellow… — booléen pour la visibilité), et rester SOBRE et cohérent.

Mise en forme conditionnelle ou masquage conditionnel de section : quelle différence ?

Deux mécanismes complémentaires à base de formules. La MISE EN FORME CONDITIONNELLE agit sur l'APPARENCE d'un OBJET (couleur, gras, fond…) : l'objet reste AFFICHÉ mais change d'aspect — usage : SIGNALER une valeur sans rien cacher (négatif en rouge). Le MASQUAGE CONDITIONNEL (2-5) agit sur la VISIBILITÉ d'une SECTION (ou d'un objet via Suppress) : la section est AFFICHÉE ou CACHÉE selon un booléen — usage : ne montrer que le PERTINENT (cacher les lignes à montant nul, afficher une alerte seulement si condition). Retenez : l'une CHANGE L'ASPECT de ce qui reste visible, l'autre FAIT APPARAÎTRE OU DISPARAÎTRE. On les combine : colorer l'alerte en rouge ET n'afficher sa section que quand elle existe.

Vérifiez votre compréhension

Que faut-il renvoyer dans une formule de couleur de police ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 3Questions inédites et durcies pour valider vos acquis