Téléchargement
illégal
Posez votre question Signaler

[VBA] Changer la couleur d'une case

BarbeRousse - Dernière réponse le 29 mai 2012 à 15:57
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".
Lire la suite 

[VBA] Changer la couleur d'une case »

7 réponses
Réponse
+1
moins plus
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.
Informaticien - 12 juil. 2010 à 14:12
J'aimeeeeeeeee
guadoc- 30 août 2010 à 15:21
En RGB on peut utiliser colorIndex??
On fait comment sinon?
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Migouz972 - 7 janv. 2009 à 16:29
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
HTW - 29 mai 2012 à 15:57
avec le Range("f4"), cela ne s'applique qu'à la cellule F4.
il faudrait faire une itération sur les cellules suivantes ? ou utiliser la fonction de 'cellule active' et non de 'cellule F4' (positionnement dynamique, la cellule ACTIVE, et non la cellule F4)
A suivre...
Ajouter un commentaire
Ce document intitulé « [VBA] Changer la couleur d'une case » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?