Changer couleur de cellule en un clic

bonjour,

je voudrais savoir comment faire pour rajouter des couleurs à cette formule et si on peut mettre les couleurs RGB à la place de celles qu'il y a...

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Set plage = Union([G4:G20], [M4:M20], [G28:G40])
If Intersect(Target, plage) Is Nothing Then Exit Sub
Cancel = True
If Target.Interior.ColorIndex = xlNone Then
    Target.Interior.ColorIndex = 3
    Target.Font.ThemeColor = xlThemeColorAccent1
        Target.Font.TintAndShade = 0.399975585192419
Else
    Target.Interior.ColorIndex = xlNone
    Target.Font.ColorIndex = xlAutomatic
        Target.Font.TintAndShade = 0
End If

End Sub

merci

Bonsoir,

Tu te contentes de commandes :

    Target.Interior.Color = RGB(r, g, b)

Tu supprimes toutes les lignes annexes de définition de couleur (qui contiennent ThemeColor ou TintAndShade).

Tu peux remplacer la valeur RGB par les constantes couleurs de VBA pour 8 couleurs de bases : vbRed, vbGreen, vbBlue, vbCyan, vbMagenta, vbYellow, vbBlack, vbWhite.

Mais si tu veux ajouter des couleurs, il faut dire comment, car là tu ne peux qu'alterner : une couleur ou pas, ou une couleur ou une autre...

Cordialement.

merci MFerrand,

je rencontre un autre problème, lorsque la dernière couleur est mise, ça ne change plus hors je voudrais faire une boucle qu'à chaque clic ça change

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Set plage = Union([G4:G20], [M4:M20], [G28:G40])
If Intersect(Target, plage) Is Nothing Then Exit Sub
Cancel = True
If Target.Interior.ColorIndex = xlNone Then
    Target.Interior.Color = RGB(20, 148, 20)
Else
    If Target.Interior.Color = RGB(20, 148, 20) Then
    Target.Interior.Color = RGB(240, 195, 0)
Else
    If Target.Interior.Color = RGB(240, 195, 0) Then
    Target.Interior.Color = RGB(0, 176, 240)
Else
    If Target.Interior.Color = RGB(0, 176, 240) Then
    Target.Interior.Color = RGB(255, 255, 255)
Else
    If Target.Interior.Color = RGB(255, 255, 255) Then
    Target.Interior.Color = RGB(206, 206, 206)
Else
    If Target.Interior.Color = RGB(206, 206, 206) Then
    Target.Interior.Color = RGB(112, 48, 160)
Else
    If Target.Interior.Color = RGB(112, 48, 160) Then
    Target.Font.ColorIndex = xlAutomatic
        Target.Font.TintAndShade = 0
    End If
    End If
    End If
    End If
End If
End If
End If

End Sub

c'est bon j'ai trouvé en fait c’était a la fin du code

Else
    If Target.Interior.Color = RGB(112, 48, 160) Then
    Target.Interior.Color = RGB(20, 148, 20)
    End If

merci de l'aide

Bonjour

et en mettant comme ceci : (pas tester)

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Set plage = Union([G4:G20], [M4:M20], [G28:G40])
If Intersect(Target, plage) Is Nothing Then Exit Sub
Cancel = True

 If Target.Interior.ColorIndex = xlNone Then
    Target.Interior.Color = RGB(20, 148, 20)
ElseIf Target.Interior.Color = RGB(20, 148, 20) Then
    Target.Interior.Color = RGB(240, 195, 0)
ElseIf Target.Interior.Color = RGB(240, 195, 0) Then
    Target.Interior.Color = RGB(0, 176, 240)
ElseIf Target.Interior.Color = RGB(0, 176, 240) Then
    Target.Interior.Color = RGB(255, 255, 255)
ElseIf Target.Interior.Color = RGB(255, 255, 255) Then
    Target.Interior.Color = RGB(206, 206, 206)
ElseIf Target.Interior.Color = RGB(206, 206, 206) Then
    Target.Interior.Color = RGB(112, 48, 160)
ElseIf Target.Interior.Color = RGB(112, 48, 160) Then
    Target.Interior.Color = RGB(20, 148, 20)
    End If
 End If
End Sub

crdlt,

André

ça fonctionne aussi très bien merci Andre13

Rechercher des sujets similaires à "changer couleur clic"