Action sur remplissage couleur sous VBA

Bonjour,

Je doit effectué un planning de maintenance pour mon stage sur excel. J'ai déjà écrit des lignes de codes (ci-dessous) qui lorsqu'on clique sur les cellules désigné elle se remplisse en vert et écrit un message.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("D3,D4,D5,GE3,GE4,GE5,ND3,ND4,ND5,J6,BT6,GL6,LA6,PT6,EE6,IT6,NJ6,SE6,P7,CA7,EL7,GW7,JH7,LS7,OD7,QO7,SZ7")) Is Nothing Then

ActiveCell.Interior.ColorIndex = 4

MsgBox "Opération effectuée"

End If

End Sub

Mon problème commence maintenant: J'ai de plus en plus de case a désigné et donc j'aimerai savoir s'il était possible de remplacer la phrase:

"If Not Intersect(Target, Range("D3,D4,D5,GE3,GE4,GE5,ND3,ND4,ND5,J6,BT6,GL6,LA6,PT6,EE6,IT6,NJ6,SE6,P7,CA7,EL7,GW7,JH7,LS7,OD7,QO7,SZ7")) Is Nothing Then"

Par une phrase qui dirait "Lorsqu'on double clic sur une cellule avec un remplissage rouge" (indexcolor 3 il me semble (rouge foncé)

Merci pour votre aide. Max

Personne ?

Bonjour,

Et qu'est-ce qui colorie en rouge foncé ? Ça fait problème incomplètement posé...

Pourquoi ne pas mettre en place un cycle : à chaque double-clic si rien: rouge foncé, si rouge foncé: vert, si vert: rien...

Cordialement.

Bonjour, les cellules rouges c'est pas un problème. je les crée manuellement par copiage sur une période, ça prend 10 secondes.

Mon problème vous l'avez annoncé, c'est: A chaque double-clic sur rouge foncé => vert

Et je ne sais pas le faire avec l'aide de VBA (comme vous pouvez le voir j'ai trouver comme solution d'écrire l'emplacement de la cellule dans la ligne de code, mais en rajoutant des taches ça risque de devenir très long)

On va tout de même te permettre de rectifier une erreur de double-clic par un double-clic... !

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim clr, i%
    clr = Array(RGB(192, 0, 0), vbGreen)
    With Target.Interior
        Select Case .Color
            Case clr(0), clr(1)
                i = IIf(.Color = clr(0), 1, 0)
                .Color = clr(i)
                Cancel = True
        End Select
    End With
End Sub

Si la couleur est rouge foncé, elle passe au vert, si elle est vert, elle repasse au rouge foncé.

Cordialement.

Cela fonctionne parfaitement. Merci beaucoup

Cordialement

Rechercher des sujets similaires à "action remplissage couleur vba"