XL 2010 Faire défiler les couleurs une cellule à chaque clic

SSIAP2

XLDnaute Occasionnel
Bonjour à tous

j’espère vous avez tous passer de bonne vacance

je viens vous demander un petit peu d'aide sur un nouveau projet

sur une ma feuil1

en A5 a L34 j'ai des noms de collègues de travail qui si trouvent importer à l'aide de formule.

je souhaiterais une macro que quand je clique sur une cellule de cette plage la cellule cliquez change de couleur:
1 fois la couleur soit jaune colorindex=2
une seconde fois elle deviens rouge colorindex=3
une troisième fois elle deviens verte colorindex=10
une quatrième fois elle redeviens blanche colorindex=2

petite précision le top serait que ce soit en un seul clic car en double clic sa risque de faire apparaitre les formules qui ci trouvent merci d'avance.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour SSIAP2

un essai avec ceci peut-être?!

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A5:L34")) Is Nothing Then
If Target.Interior.Color = vbWhite Then: Target.Interior.Color = vbYellow: Range("a1").Activate: Exit Sub
If Target.Interior.Color = vbYellow Then: Target.Interior.Color = vbRed: Range("a1").Activate: Exit Sub
If Target.Interior.Color = vbRed Then: Target.Interior.Color = vbGreen: Range("a1").Activate: Exit Sub
If Target.Interior.Color = vbGreen Then: Target.Interior.Color = vbWhite: Range("a1").Activate: Exit Sub
End If
End Sub
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Bonjour, SSIAP2, Lone-wolf :), le Forum,

Comme ceci ?
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal c As Range)
    Dim plage As Range: Set plage = Range("a5:l34")
    If c.Count > 1 Then Exit Sub
    If Not Intersect(c, plage) Is Nothing Then
        Select Case c.Interior.ColorIndex
        Case xlNone: c.Interior.ColorIndex = 6
        Case 6: c.Interior.ColorIndex = 3
        Case 3: c.Interior.ColorIndex = 10
        Case 10: c.Interior.ColorIndex = xlNone
        End Select
        Application.EnableEvents = False
        c.Offset(, 1).Select
        Application.EnableEvents = True
    End If
End Sub
Nota : une réponse, ici, serait appréciée.

A bientôt :)
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 607
Membres
112 804
dernier inscrit
padu