clic = chgt couleur cellule

  • Initiateur de la discussion Initiateur de la discussion Laurent
  • Date de début Date de début

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 !

L

Laurent

Guest
Salut à tous,
Je n'utilise excel que pour faire des sommes et je n'y connais absolumnt rien en macro. Si qq'un pouvait m'aider ;o)
En fait j'aimerais qu'en cliquant dessus, la couleur d'une cellule passe du blanc ->vert -> jaune ->orange ->rouge
Merci d'avance pour votre aide
 
Bonjour Laurent,

Vas sous VBA, et dans la feuille de code liée à la feuille qui t'intéresse, écrit ce code (en remplaçant $B$2 par les références de la cellule que tu veux colorer)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$2" Then
Select Case Target.Interior.ColorIndex
Case xlNone
Target.Interior.ColorIndex = 4
Case 4
Target.Interior.ColorIndex = 6
Case 6
Target.Interior.ColorIndex = 46
Case 46
Target.Interior.ColorIndex = 3
Case 3
Target.Interior.ColorIndex = xlNone
End Select
End If
End Sub

Inconvénient:
Après un clic, il faut réactiver en allant sélectionner une autre cellule, car si on clique plusieurs fois de suite sur la cellule à colorer, seul le premier click est pris en compte.

Solution:
Rajoute juste avant End If:
Range("B1").select

Nouvel inconvénient:
cette fois, on peut cliquer plusieurs fois de suite pour changer la couleurs, mais on ne reste plus fixe sur la cellule B2, on ne peut donc pas en modifier le contenu.

Dernière alternative:
qui n'a pas les deux inconvénients ci-dessus: faire faire le changement de couleur non pas par un clic, mais par un double clic:
Dans ce cas, remplace la première ligne de la macro ci-dessus:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
par:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
et rajoute juste avant le end if:
Cancel = True

Salut Laurent,
Laurent.
 
Salut Sambot95

Remplace la ligne

If Target.Address = "$B$2" Then

par

If Not Application.Intersect(Target, Range("A2,A5,C2😀5,F:F")) Is Nothing Then

Dans cet exemple, les cellules concernées par la modification de couleur sont: A2, A5, mais aussi la zone de C2 à D5, où encore la colonne F.
A toi d'adapter selon tes besoins.

Bonsoir.
Laurent.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
562
Réponses
10
Affichages
7 K
Retour