Action sur remplissage couleur sous VBA Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
S
SyotoS
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 avril 2017
Version d'Excel : 2010 FR

Message par SyotoS » 28 avril 2017, 10:42

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
Planing maintenance préventive.xlsm
(23.85 Kio) Téléchargé 16 fois
S
SyotoS
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 avril 2017
Version d'Excel : 2010 FR

Message par SyotoS » 29 avril 2017, 00:42

Personne ?
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 29 avril 2017, 02:41

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.
S
SyotoS
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 avril 2017
Version d'Excel : 2010 FR

Message par SyotoS » 29 avril 2017, 10:42

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)
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 29 avril 2017, 12:43

On va tout de même te permettre de rectifier une erreur de double-clic par un double-clic... ! :D
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.
S
SyotoS
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 avril 2017
Version d'Excel : 2010 FR

Message par SyotoS » 29 avril 2017, 13:08

Cela fonctionne parfaitement. Merci beaucoup :D

Cordialement
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message