Excel 2003 et la mise en forme conditionnelle

Bonjour à tous,

Pour le boulot, je dois réaliser un fichier Excel.
A partir de certaines données d’une première feuille, j’affiche une note sur 100 sur une autre feuille.
Ce que j’aimerais faire, c’est utiliser une mise en forme conditionnelle sur la cellule contenant cette note.
Par exemple, entre 0 et 20, la cellule est verte. Entre 20 et 40 la cellule est jaunes, …
Jusque là, rien de compliqué, excel le fait très bien via le menu format.

Le problème, c’est que la mise en forme conditionnelle d’Excel (le 2003, pour le 2007 c’est différent) ne gère que 3 conditions.
En utilisant le format de base, cela signifie que je peux utiliser seulement 4 couleurs pour ma cellule.
Or, il m’en faut 5.

J’ai cherché sur internet et j’ai trouvé plusieurs solutions.
Par exemple:

[codebox]Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range(“d31”)) Is Nothing Then
With Target
Select Case Target.Value
Case “0”
.Interior.ColorIndex = 4
Case “1”
.Interior.ColorIndex = 45
Case “2”
.Interior.ColorIndex = 46
Case “3”
.Interior.ColorIndex = 3
End Select
End With
End If[/codebox]

Ce code fonctionne très bien (une fois adapté) lorsque l’on tape directement dans la case.
Cependant, dans mon cas, la note est calculée sur une feuille, et affichée dans une autre (où est la note).
Et, dans ce cas précis, l’astuce ne fonctionne plus.

J’ai également essayé des macros beaucoup plus avancés trouvées sur le net.
(Celle-ci par exemple)
Malheuresement, je tombe sur exactement le même problème.

Ma question est donc assez simple.

Avez-vous une piste pour résoudre ce problème ?

Merci d’avance.

[quote=“pr7, post:1, topic: 37972”]Ce code fonctionne très bien (une fois adapté) lorsque l’on tape directement dans la case.
Cependant, dans mon cas, la note est calculée sur une feuille, et affichée dans une autre (où est la note).
Et, dans ce cas précis, l’astuce ne fonctionne plus.[/quote]

J’ai eu ce souci il n’y a pas longtemps. Je n’arrive pas à retrouver le lien sur google. En faisant enregistrer Macro sur l’explication que je fais en dessous tu retrouveras sans doute le code VBA. D’après mes recherches la mise en forme conditionnelle ne fonctionne que sur la feuille locale.

Donc la mise en forme conditionnelle en référence d’une autre cellule répétitive est très mal documentée. Tu sélectionnes un ensemble de cellule, et là est l’astuce, tu cliques-CTRL sur la cellule contenant la note, et tu vas dans mise en forme conditionnelle.

Par exemple tu sélectionnes
ABC
DEF
GHI

tu fais CTRL-cliques sur I (la cellule va devenir blanche)

Et là la formule va se référer en apparence a la cellule I dans la formule mais en fait ça va fonctionner pour C, F, et I. Reste à modifier la formule avec $ devant la colonne ou ligne si tu veux que la mise en forme conditionnelle se fasse en ligne (GHI sur I, DEF sur F,…) ou en colonne (ADG sur G, BEH sur H etc…). Fais des tests car j’inverse peut-être.

Pas évident d’expliquer sans schéma et sans excel où je suis.
J’ai retrouvé un bon lien avant de valider mon message : http://www.cbanque.com/excel/mise+en+forme.php !

Si tu as fait enregistrer Macro ça t’aidera peut-être à retrouver ce que tu cherches.

Merci pour ta réponse.

Mais ma mise en forme conditionnelle ne s’applique que sur la cellule où il y a la note.
Ca ne résoud pas mon problème (ou j’ai loupé un truc), mais ton astuce est intéressante.
J’étais déjà tombé sur un problème de ce genre (appliquer une mise en forme conditionnelle à une ligne) et j’étais tombé sur des macros plus compliquées.

Si j’ai le temps ce week-end, je ferais un exemple sur un fichier Excel.