Mise en forme conditionnelle à partir d'une matrice de criticité

Forest

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai créé une matrice de criticité sous Excel à laquelle j'ai associé un code couleur (voir exemple joint), je souhaite savoir si Excel peut récupérer ce formalisme de mise en forme pour l'associer, en mise en forme conditionnelle à un tableau.

En gros, puis-je colorier mon tableau en fonction de deux critères, définits par ma matrice (pour être simple) ou a défaut mais ça sera plus ch**** par forumle avec des arguments comme

SI "mon nombre" a critère 1 = 0 et est compris entre 0 et 10 : telle couleur
SI "mon nombre" a critère 1 = 0 et est compris entre 10 et 20 : tellec couleur
SI "mon nombre" a critère 1 = 1 et est compris entre 0 et 10 : telle couleur
SI "mon nombre" a critère 1 = 1 et est compris entre 10 et 20 : telle couleur
etc.

Merci beaucoup de votre aide,

Cordialement,

Justin
 

Pièces jointes

  • Question mise en forme.xls
    34.5 KB · Affichages: 340

Modeste

XLDnaute Barbatruc
Re : Mise en forme conditionnelle à partir d'une matrice de criticité

Bonsoir Justin,

En imaginant que j'aie bien compris ta demande, tu peux essayer le code suivant (pour vérifier que le résultat obtenu correspond à ton souhait ... on peut voir dans un second temps s'il y a des aspects à adapter)
VB:
Sub CouleurCriticité()
For Each c In Range("C16:U20")
    c.Interior.Color = [B3].Offset(Application.Match(Cells(c.Row, 2), [B4:B8], 0), _
        Application.Match(c.Value, Array(0, 10, 20, 30, 40), 1)).Interior.Color
Next c
End Sub
 

Forest

XLDnaute Nouveau
Re : Mise en forme conditionnelle à partir d'une matrice de criticité

Bonjour Modeste,

C'est tout à fait ça, ça marche. Un grand merci.
C'est la première fois que j'utilise du VBA, il m'a déjà fallu lutter pour trouver où insérer ce code sous Excel (newb inside xD) peux tu me détailler un peu le code (VBA/Français) que je puisse l'adapter de mon exemple à mon tableau de travail (qui se trouve être confidentiel).

Un grand merci,

Cordialement,
 

Modeste

XLDnaute Barbatruc
Re : Mise en forme conditionnelle à partir d'une matrice de criticité

Bonsoir,

Des explications en mode "expéditif", alors:

Application.Match(Cells(c.Row, 2), [B4:B8], 0) est la traduction de la fonction EQUIV qui permet de retrouver la position d'un élément dans une plage,
On l'utilise ici à deux reprises:
- pour trouver la position de la "portée" (cellules bleues de ton fichier, de B16 à B20) dans la plage B4:B8
- pour trouver la "fourchette" dans laquelle figure chaque valeur de la plage C16:U20

Une fois ces deux valeurs trouvées, on les utilise pour DECALER (Offset) la référence de départ (B3) de x lignes et y colonnes.
L'idée, ici est de se positionner dans ta "matrice de criticité", de capturer la couleur d'une cellule à l'intersection d'une "portée" et d'un "nombre d'occurences" et d'appliquer ladite couleur aux différentes cellules de la plage C16:U20

Qui a dit "c'est encore pire avec les explications"? :eek: Si tu as du mal avec ces dernières, je peux ré-essayer demain ... j'aurai (peut-être?) plus de temps et moins de brume dans le cerveau
 

Discussions similaires

Réponses
12
Affichages
310

Statistiques des forums

Discussions
312 756
Messages
2 091 746
Membres
105 062
dernier inscrit
Ret78