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.