Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Macro - Colorer cellule SI

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Krine35

XLDnaute Nouveau
Bonjour,

J'ai quelques lacunes en VBA sur Excel. Mon problème est le suivant.

J'ai créé un tableau.
La donnée dans la colonne B est sélectionnée dans une liste.
Pour la donnée "mot1", je souhaite colorer certaines cases du tableau.

Pourriez-vous m'aider pour établir le code qui permettrait de colorer certaines cases en fonction de la donnée sélectionnée?

Pour illustrer mon problème, voici le fichier associé : Ce lien n'existe plus.

Merci.
 
Re : VBA - Macro - Colorer cellule SI

Bonsoir Krine35,

J'ai deux questions:
- Pourquoi ne pas utiliser les "Mises en Forme Conditionnelles" (surtout si tu dis avoir des lacunes en VBA) ?
- Tu veux des couleurs différentes, en fonction du terme qui apparaît ... ou une seule couleur (les colonnes concernées étant les seuls éléments qui varient) ?
 
Re : VBA - Macro - Colorer cellule SI

Bonsoir Modeste,

Je souhaite utiliser VBA pour pouvoir m'améliorer dans ce domaine et découvrir d'avantage cet outil.

Je souhaite obtenir la même couleur, verte de préférence. 🙂
 
Re : VBA - Macro - Colorer cellule SI

Je souhaite utiliser VBA pour pouvoir m'améliorer dans ce domaine et découvrir d'avantage cet outil.

Ma foi, personne ne te jettera la pierre ... garde tout de même en tête que tu ne gagneras pas grand chose à programmer ... quelque chose qui existe déjà 😀

Voici une (parmi sans doute quelques autres) façon de faire:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Select Case Target
    Case "mot1"
        Cells(Target.Row, 3).Resize(1, 2).Interior.ColorIndex = 4
    Case "mot2"
        Cells(Target.Row, 5).Resize(1, 2).Interior.ColorIndex = 4
    Case "mot3"
        Cells(Target.Row, 3).Interior.ColorIndex = 4
        Cells(Target.Row, 7).Interior.ColorIndex = 4
    Case "mot4"
        Cells(Target.Row, 4).Resize(1, 3).Interior.ColorIndex = 4
    Case Else
        Cells(Target.Row, 1).Resize(1, 7).Interior.ColorIndex = xlNone
End Select
End Sub
 
Re : VBA - Macro - Colorer cellule SI

Merci beaucoup. 🙂

Le programme marche. Mais par contre, si l'utilisateur souhaite changer la donnée et mettre "mot1" à la place de "mot2" par exemple, les cases vertes s'accumulent et ne correspondent plus.

Est-il possible de solutionner ce problème?
 
Re : VBA - Macro - Colorer cellule SI

Re,

Je te dirais bien que c'était pour voir si tu étais attentive ... mais j'ai l'impression que personne ne me croira 🙁

Copie cette ligne Cells(Target.Row, 1).Resize(1, 7).Interior.ColorIndex = xlNone juste avant le Select Case

Supprime ensuite cette même ligne en fin de code, ainsi que le Case Else de la ligne qui la précède. En fait, comme tu as une validation, on ne risque pas de pouvoir encoder autre chose que tes "mots"

Teste et ... redis-nous 🙂
 
Re : VBA - Macro - Colorer cellule SI

Bonjour Krine35, le forum,

Si à la place de "mot1" je souhaite mettre "mot 1" avec un espace. Le code change-t-il?
Ben oui, quand même: il faut au moins remplacer "mot1" par "mot 1" (dans le code proposé au message #4, là où le texte apparaît en rouge et entre guillemets) ... mais ça je suppose que tu l'auras deviné ... donc, peut-être que ta question est différente et que je ne l'ai pas comprise 😕
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
7
Affichages
191
Réponses
6
Affichages
218
Réponses
72
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…