Mise en forme de cellule à partir d'une liste déroulante [macro]

vince03100

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterai mettre en forme mon tableur excel à partir d'une liste déroulante avec une macro. J'aimerai avec cette macro que la cellule C1 soit bleue quand B1=1, D1 soit bleu quand B1 = 2… mais également pour la suite du tableau : B2= 1 C2 en bleu... Mais je ne vois pas vraiment comment faire j'ai déjà essayé plusieurs solutions mais cela ne fonctionne pas.

Ci-joint le classeur excel très simplifié que je doit mettre en forme puisque l'autre est confidentiel (je suis stagiaire dans une entreprise de froid industriel).

Merci d'avance pour vos réponses.
 

Pièces jointes

  • Classeur1.xlsx
    10.7 KB · Affichages: 56
  • Classeur1.xlsx
    10.7 KB · Affichages: 60
  • Classeur1.xlsx
    10.7 KB · Affichages: 62

Modeste

XLDnaute Barbatruc
Re : Mise en forme de cellule à partir d'une liste déroulante [macro]

Bonjour vince03100 et bienvenue!

Une MFC fera la même chose aussi bien, si j'ai bien compris!?

Sélectionner la plage C1:F4, dans ton exemple. Dans l'onglet Accueil > Mise en Forme Conditionnelle > Nouvelle règle > Utiliser une formule pour ... Dans la zone de formule, indiquer "=$B1=COLONNE(C1)-2" et valider
 

vince03100

XLDnaute Nouveau
Re : Mise en forme de cellule à partir d'une liste déroulante [macro]

Merci de ta réponse sauf qu'il ne faut pas prendre en compte les valeurs 1,2,3,4 car dans le classeur original, c'est du texte c'est pour cela que je veux utiliser une macro car j'ai également plusieurs cellules à mettre en forme pour chaque ligne.
 

Modeste

XLDnaute Barbatruc
Re : Mise en forme de cellule à partir d'une liste déroulante [macro]

Bonjour vince03100, le forum,

Un fichier qui représente fidèlement la situation réelle serait sans doute utile ... parce que la macro qu'on pourrait proposer risquerait de ne pas convenir non plus!?
À moins que quelqu'un ne devine ce dont tu as besoin, des explications supplémentaires ne seraient pas superflues, à mon humble avis.
 

vince03100

XLDnaute Nouveau
Re : Mise en forme de cellule à partir d'une liste déroulante [macro]

Bonjour,

Je met en pièce jointe ce que je souhaiterai obtenir comme tableau, en simplifié car celui sur lequel je suis est plus complet, mais c'est surement plus représentatif de ce que j'aimerai avoir. Ce que je souhaite alors c'est que dès que l'utilisateur sélectionne une situation le reste du tableau se colore automatiquement.

Merci d'avance pour vos réponses.
 

Pièces jointes

  • Classeur1.xlsx
    9.7 KB · Affichages: 54
  • Classeur1.xlsx
    9.7 KB · Affichages: 57
  • Classeur1.xlsx
    9.7 KB · Affichages: 54

Modeste

XLDnaute Barbatruc
Re : Mise en forme de cellule à partir d'une liste déroulante [macro]

Re-bonjour,

Dans ce cas, MFC et macro restent envisageables, toutes les deux ... si j'ai bien compris :confused:

J'ai déplacé en Feuil2, la source des validations et lui ai adjoint un petit tableau contenant des "x" pour les cellules à colorer en rouge.

Comme l'indiquent les noms des deux autres onglets, dans la première feuille, on travaille avec une macro événementielle (au changement de valeur dans la plage C7:C20). Même principe dans la seconde feuille, sans macro, mais avec une MFC.
 

Pièces jointes

  • MFC ou macro (vince03100).xlsm
    19.1 KB · Affichages: 34

Modeste

XLDnaute Barbatruc
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à :p

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!?
 

Pièces jointes

  • MFC (vince03100) V2.xlsx
    11.7 KB · Affichages: 40

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 256
Membres
102 839
dernier inscrit
Tougtoug