Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 cond.)

zackus

XLDnaute Nouveau
Voila à peut près tous est dit dans le titre, je pense que la solution est relativement basic à coder mais j'y connais pas grand chose, donc si quelqu'un peut me guider ça serait génial.

Pour infos il faut que toutes les cellules en jaune de l'onglet "Etiquette" se colore en fonction de la valeur des cellules D7 et D8 et en fonction du code couleur de l'onglet "Code couleur picking"

Alors moi dans la solution je pensais écrire A6:D6 dans 2 variables, les additionner et colorer les cellules à colorer en fonction du résultat...
Mais je ne sais absolument pas comment m'y prendre, donc si une âme charitable veut se lancer je la remercie d'avance
 

Pièces jointes

  • ESsai.xls
    19 KB · Affichages: 117
  • ESsai.xls
    19 KB · Affichages: 119
  • ESsai.xls
    19 KB · Affichages: 117

Dranreb

XLDnaute Barbatruc
Re : Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 c

Bonsoir.
Dans le module Feuil1 (Etiquette) ceci à l'air de marcher:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Coul As Long
If Intersect(Me.[A6:D6], Target) Is Nothing Then Exit Sub
Set Cel = Feuil2.[A:A].Find(What:=Me.[A6].Value & Me.[C6].Value, After:=Feuil2.[A1], _
   LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
   SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Cel Is Nothing Then Exit Sub
Coul = Cel.Interior.Color
Application.ScreenUpdating = False
For Each Cel In Me.[A1:L2,A4:L5,A6:F6]
   Cel.Interior.Color = Coul
   Next Cel
End Sub
Alt+F11 pour aller dans VBA d'abord.
Cordialement.
 

zackus

XLDnaute Nouveau
Re : Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 c

Bon ben désolé je relance, car sur le fichier de test ça marche mais sur l'original ça ne fonctionne pas. Je pense que c'est parce que dans le fichier d'origine la valeur des cellules D7 et D8 sont ramené par une recherchev d'un autre onglet alors que dans le fichier test c'est la valeur direct de la cellule. Car quand je remplace la formule par la valeur dans mon fichier ça fonctionne... :confused:
 

Dranreb

XLDnaute Barbatruc
Re : Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 c

Bonjour.
Mettez le code dans une procédure qui s’exécutera quand il le faudra.
Par exemple lors de la modification des cellules de l'autre feuille qui induisent un changement.
Ou mieux: Dans une Worksheet_Activate de la feuille Étiquette (inutile de faire ce coloriage dans ce cas tant qu'on ne va pas dans la feuille !)
Utilisez les listes déroulantes qui surmontent la fenêtre de code :
Liste de gauche, Objet: Worksheet, liste de droite, Procédure: Activate.
À +
 
Dernière édition:

zackus

XLDnaute Nouveau
Re : Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 c

Bonsoir,

C'est de nouveau moi, j'ai beau chercher mais je n'arrive pas à la faire fonctionner. J'ai vraiment l'impression qu'il regarde la formule plutôt que sa valeur car si je remplace la formule par son résultat ça fonctionne... Je mettrais bien le fichier complet mais il est trop volumineux

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Colorer des cellules en fonction de la valeur de 2 cellules (en VBA car + de 3 c

Bonsoir.
C'est normal: une Worksheet_Change ne s'exécute que si le contenu d'une cellule change. Or quand la valeur d'une formule change, ça ne change pas le contenu de la cellule puisqu'elle porte toujours la même formule.
Relisez mon poste précédent (#5) et appliquez à la lettre ma seconde idée: pour ne pas risquer de vous tromper, utilisez les listes déroulantes qui surmontent la fenêtre de code en y sélectionnant, pour l'objet Worksheet (liste de gauche) et non pas "(Général)", le modèle de procédure Activate à installer (liste de droite).
Il va de soit que cette instruction est à supprimer aussi:
If Intersect(Me.[A6:D6], Target) Is Nothing Then Exit Sub
puisqu'il n'a pas de paramètre Target dans une Sub Worksheet_Activate.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA