Rechercher : dans
Par :

[VBA] Changer la couleur d'une case

Dernière réponse le 7 jan 2009 à 16:29:35 BarbeRousse, le 9 sep 2007 à 10:25:45 
 Signaler ce message aux modérateurs

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".

Configuration: Windows XP
Firefox 2.0.0.6

1

Papou93, le 10 sep 2007 à 08:51:08

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.

Répondre à Papou93

2

BarbeRousse, le 10 sep 2007 à 14:07:27

Merci je viens d'essayer, j'ai bien réussi à faire le module VBA, mais je ne comprends pas comment aller dans les événements de "machin" et "chose".

Ceci dit ça à l'aire de fonctionner quand je teste le script, mais comment je peut définir la couleur ?

Répondre à BarbeRousse

3

Papou93, le 10 sep 2007 à 22:44:18

Il te suffit, dans l'éditeur VBA, module 'Microsoft Excel Objects', de cliquer sur les feuilles voulues puis choisir 'WorkSheet' dans la liste déroulante en haut à gauche et 'Change' dans la liste déroulante de droite.
Pour définir les couleurs, procèdes par essais en remplaçant le 6 ('Interior.colorindex=6') par un autre chiffre (=57 maxi).

Cordialement.

Répondre à Papou93

4

 Migouz972, le 7 jan 2009 à 16:29:35

Bonjour Papou,
dans le même ordre d'idée
je veux que la cellule dans laquelle je fais une condition change de couleur en fonction de la réponse reçue.
Exemple,
dans la cellule F4 de ma feuil1, si ma réponse dans ma cellule est "OUI" alors met la cellule en couleur x,
si c'est "NON" met la cellule de couleur y
sinon pas de changement de couleur.
Je veux pouvoir glisser cette fonction à plusieurs cellules par la suite (ex : F5, F6, F7, F8 etc).
Je me suis appuyé sur le code que tu as fourni au début mais cela ne fonctionne pas, peux-tu m'aider?
Voici le code que j'ai mis :
Sub ChgCouleur()
If Sheets("Feuil1").Range("f4").Value = "OUI" Then
Sheets("Feuil1").Range("f4").Interior.ColorIndex = 6
Else
If Sheets("Feuil1").Range("f4").Value = "NON" Then
Sheets("Feuil1").Range("f4").Interior.ColorIndex = 50
Else
Sheets("Feuil1").Range("f4").Interior.ColorIndex = 0
End If
End Sub

Je suis loin de programmer mais je comprend un peu le langage. De plus, je suis en office 2007 et je voudrais savoir si je codifie au bon endroit c'est à dire l'onglet Developpeur, puis icône de microsoft visual basic.

Merci

Répondre à Migouz972