Double clic change 4 fois la couleur de fond

Katoch

XLDnaute Junior
Bonsoir Forum ,

Je souhaiterais pouvoir, avec un premier double clic , colorier en rouge et donner la valeur 1 à une cellule , puis
un second double clic sur cette même cellule , la colorie en jaune avec la valeur 1,
un troisième double clic sur cette même cellule , la colorie en vert avec la valeur 1,
un quatrième double clic sur cette même cellule , la colorie en bleu avec la valeur 1,

et ainsi de suite , rouge, jaune; vert; bleu avec toujours la valeur 1.

Possible d'avoir un code qui réalise celà ?

merci.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Double clic change 4 fois la couleur de fond

Bonjour Katoch

avec ce code :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell.Value <> 1 Or ActiveCell.Interior.Color = 15773696 Then
    ActiveCell.Value = 1
    With Selection.Interior
        .Color = 255
    End With
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 255 Then
    ActiveCell.Value = 1
    With Selection.Interior
        .Color = 65535
    End With
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 65535 Then
    ActiveCell.Value = 1
    With Selection.Interior
        .Color = 5287936
    End With
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 5287936 Then
    ActiveCell.Value = 1
    With Selection.Interior
        .Color = 15773696
    End With
    Exit Sub
    End If
End Sub

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Double clic change 4 fois la couleur de fond

Re,

après "nettoyage", ce code devrait fonctioner
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell.Value <> 1 Or ActiveCell.Interior.Color = 15773696 Then
    ActiveCell.Value = 1
    Selection.Interior.Color = 255
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 255 Then
     Selection.Interior.Color = 65535
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 65535 Then
     Selection.Interior.Color = 5287936
    Exit Sub
    End If
    If ActiveCell.Interior.Color = 5287936 Then
     Selection.Interior.Color = 15773696
    Exit Sub
    End If
End Sub
à+
Philippe
 

Katoch

XLDnaute Junior
Re : Double clic change 4 fois la couleur de fond

Yes ! ça marche.(les 2 codes)
Mais au bout du second clic je suis obligé de changer de cellule puis de revenir sur la cellule coloriée pour passer au 3e double clic.
Il manque une sorte de de confirmation (validation ?)de l'entrée , non ?
 

ya_v_ka

XLDnaute Impliqué
Re : Double clic change 4 fois la couleur de fond

Hello

une solution différente :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim C
       Cancel = True
       C = Target.Interior.ColorIndex
       Target.Interior.ColorIndex = Switch(C = xlNone, 3, C = 3, 6, C = 6, 4, C = 4, 5, C = 5, xlNone)
       Target.Value = 1
End Sub

ou solution pour revenir à 0 sans couleur :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim C
       Cancel = True
       C = Target.Interior.ColorIndex
       Target.Interior.ColorIndex = Switch(C = xlNone, 3, C = 3, 6, C = 6, 4, C = 4, 5, C = 5, xlNone)
       If Target.Interior.ColorIndex <> xlNone Then
            Target.Value = 1
        Else
            Target.Value = ""
        End If
End Sub

Petit avantage du switch, facile d'y rajouter une couleur...

Ya'v
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS