[VBA] Changer la couleur d'une case
BarbeRousse
-
Papi78 -
Papi78 -
Bonjour,
Je suis un véritable novice dans le domaine de VBA, il faudra donc m'expliquer un peut le code.
Je cherche donc à changer la couleur d'une case en fonction de la valeur contenue sur d'autres cases (ne se trouvant pas forcement sur la même feuille de calcul)
Autrement dit je veut que la couleur de A1 sur la feuille "truc" change si la case B5=65 sur la feuille "machin" ET si la case F6=48 sur la feuille "chose".
Je suis un véritable novice dans le domaine de VBA, il faudra donc m'expliquer un peut le code.
Je cherche donc à changer la couleur d'une case en fonction de la valeur contenue sur d'autres cases (ne se trouvant pas forcement sur la même feuille de calcul)
Autrement dit je veut que la couleur de A1 sur la feuille "truc" change si la case B5=65 sur la feuille "machin" ET si la case F6=48 sur la feuille "chose".
A voir également:
- Vba changer couleur cellule
- Changer dns - Guide
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Code couleur rj45 - Forum câblage
- Changer la couleur de la barre des taches - Guide
3 réponses
Bonjour barberousse
Voici une solution qui me parait simple :
Il te faut créer un nouveau module dans VBA (Menu 'Insertion -> Module'), puis tu tapes le code suivant :
Sub ChgCouleur()
If Sheets("machin").Range("b5").Value = 65 And Sheets("chose").Range("f6") = 48 Then
Sheets("truc").Range("a1").Interior.ColorIndex = 6
Else
Sheets("truc").Range("a1").Interior.ColorIndex = 0
End If
End Sub
Ensuite, dans les événements 'Change' de tes feuilles "machin" et "chose", tu tapes l'appel à cette procésure :
Private Sub Worksheet_Change(ByVal Target As Range)
ChgCouleur
End Sub
Explication :
A chaque changement de valeur dans l'une des 2 feuilles, la procédure ChgCouleur est exécutée.
Cette procédure lit la valeur de la cellule "b5" de la feuille "machin" et de la cellule "f6" de la feuille "chose".
Si les valeurs trouvées sont respectivement 65 ET 48, le programme change alors la couleur de fond de la cellule "a1" de la feuille "truc" (6=jaune). Dans le cas contraire, elle remet la couleur par défaut (0=aucune).
Tu peux tester les différentes couleurs possibles en modifiant la valeur '6').
Espérant t'avoir aidé.
Cordialement.
Voici une solution qui me parait simple :
Il te faut créer un nouveau module dans VBA (Menu 'Insertion -> Module'), puis tu tapes le code suivant :
Sub ChgCouleur()
If Sheets("machin").Range("b5").Value = 65 And Sheets("chose").Range("f6") = 48 Then
Sheets("truc").Range("a1").Interior.ColorIndex = 6
Else
Sheets("truc").Range("a1").Interior.ColorIndex = 0
End If
End Sub
Ensuite, dans les événements 'Change' de tes feuilles "machin" et "chose", tu tapes l'appel à cette procésure :
Private Sub Worksheet_Change(ByVal Target As Range)
ChgCouleur
End Sub
Explication :
A chaque changement de valeur dans l'une des 2 feuilles, la procédure ChgCouleur est exécutée.
Cette procédure lit la valeur de la cellule "b5" de la feuille "machin" et de la cellule "f6" de la feuille "chose".
Si les valeurs trouvées sont respectivement 65 ET 48, le programme change alors la couleur de fond de la cellule "a1" de la feuille "truc" (6=jaune). Dans le cas contraire, elle remet la couleur par défaut (0=aucune).
Tu peux tester les différentes couleurs possibles en modifiant la valeur '6').
Espérant t'avoir aidé.
Cordialement.
On fait comment sinon?