Re : Mise en forme de cellule à partir d'une liste déroulante [macro]
Bonjour vince03100,
Dans un cas comme celui-ci, mon vieux neurone utilise souvent une technique dont j'ai un peu honte et que je ne livrerai jamais sur un forum ou un endroit aussi public que celui-là
Avant de m'attaquer à la mise en forme conditionnelle, je teste la formule dans des cellules à côté du tableau: avec un SI, j'essaie de trouver une solution pour faire apparaître un caractère ('R' pour rouge, par exemple) dans les cellules qui devront se colorer.
Ce qui me servira, ensuite dans la MFC sera la partie "Test logique" de la fonction SI (que je n'aurai plus qu'à copier-coller dans la zone de formule de la MFC).
Dans la pièce jointe regarde la formule en K7. Comme on doit colorer en bleu ou en rouge, je commence par m'assurer que la cellule (sur la même ligne) de la colonne C n'est pas vide. Les #N/A correspondent aux cellules où il n'y a pas de "Situation" renseignée (elles ne seront donc pas traitées par la MFC, puisque le résultat de la première condition est FAUX).
Il nous faut ensuite déterminer si la cellule correspondante, dans le tableau de la Feuil2 contient un 'x'. "
EQUIV($C7;situations;0)+1" permet de trouver la position de la "Situation" figurant en C7, dans la première colonne du tableau en Feuil2 (le '+1' n'est là que parce que la plage nommée "situations" s'étend de la ligne 2 à la ligne 7. Si Situation 1 est en ligne 1 de cette plage, elle est, en réalité, en ligne 2 de la feuille).
"
INDEX(Feuil2!$A$1:$G$7;EQUIV($C7;situations;0)+1;COLONNES($A:B))" permet de renvoyer la valeur, dans une plage (ici, Feuil2!$A$1:$G$7) figurant à l'intersection d'une ligne et d'une colonne. Tu sais maintenant que le EQUIV permet de trouver le n° de ligne. "
COLONNES($A:B)", dans la première formule en K7, donne 2 (le nombre de colonnes comprises entre A et B). En recopiant à droite et grâce au '$' devant 'A', on obtient automatiquement 3, puis 4, puis 5, etc.
Enfin, on vérifie si la valeur, dans le tableau de la Feuil2, à l'intersection de la ligne X et de la colonne Y est un 'x'. Si oui (et si la colonne C, sur la même ligne, renseigne bien quelque chose), on fait apparaître un 'R'; sinon, on affiche un 'B'.
Ouf, on est au bout (je crois) ... c'est maintenant que tu vas me dire que tu comprenais pratiquement tout dans la formule!?