Comment incrémenter des cellules colorées activées par clic
Bonjour,
En premier lieu je ne pourrais pas fournir le fichier Excel qui est confidentiel, un exemple éventuellement si vous en avez besoin.
Donc j'ai un tableau dans lequel j'ai créé une macro pour qu'à chaque double clic sur une cellule, celle-ci devienne verte (le code RGB est : (127, 221, 76), un autre double clic sur la cellule l'a rend blanche. Mon objectif est de créer une colonne permettant d'incrémenter les cellules vertes (donc lorsque l'on double clic dessus).
J'ai cherché un peu à droit à gauche et j'ai trouvé plusieurs solutions :
Dans un document il y avait ce code macro :
Public Function NbCelluleColorees(Plage As Range) As Integer
Dim cc As Range
Application.Volatile True
NbCelluleColorees = 0
For Each cc In Plage
If cc.Interior.ColorIndex = 4 Then
NbCelluleColorees = NbCelluleColorees + 1
End If
Next cc
End Function
Avec une fonction NbCelluleColorees(la ligne de cellule d'intérêt) dans chaque cellule de la colonne d'incrémentation.
Cette macro me semble hyper pratique mais marque 0 dans toutes les cellules de la colonne même après double clic, il faut surement l'insérer quelque part mais je ne sais pas où! Peut être faut-il changer le code couleur qui ici est le 4 si j'ai compris, alors que moi j'ai un code RGB.
Autre solution:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Application.Intersect(Target, ActiveSheet.Range("E2:J6")) Is Nothing Then Exit Sub 'plage à adapter
If Target.Interior.ColorIndex <> xlNone Then 'si la cellule est colorée
Target.Interior.ColorIndex = xlNone 'aucun remplissage, police blanche + valeur= 0
Target.Value = 0
Target.Font.ColorIndex = 2
Cancel = True
Exit Sub
ElseIf Cells(Target.Row, 2).Value = "Etude" Then 'si, dans la même ligne, la colonne 2 renseigne "Etude"
Target.Interior.Color = 14922893 'couleur de remplissage et de police bleue + valeur=1
Target.Font.Color = 14922893
Target.Value = 1
ElseIf Cells(Target.Row, 2).Value = "Réalisation" Then
Target.Interior.Color = 3487637
Target.Font.Color = 3487637
Target.Value = 1
End If
Cancel = True
End Sub
Ce document prenait en compte le double clic mais il a d'autres conditions s'il y a le mode étude marqué etc, seule la couleur de la cellule m'intéresse
J'aimerais donc solliciter votre aide pour m'aider à changer l'un de ces deux codes macros : objectif : je clic sur une cellule blanche, elle devient verte, incrémentation dans la colonne (si possible je préférerais garder la première macro).
Merci d'avance.
Rebonjour,
J'ai trouvé le moyen c'est tout bête, en fait vous prenez la première macro, vous insérez votre fonction NbCellulescolorees(La ligne ou la plage d'intérêt) dans le tableau, dans la macro, vous changez le code index (= 4 c'est le vert de base). Je suis allé chercher un tableau de conversion RGB en colorindex, ne trouvant pas mon vert anis en colorindex, je l'ai changé en colorindex 43 (vert olive) apparemment avec ce code le vert anis était aussi incrémenté mais j'ai tout changé en vert olive pour être sûr. Voilà voilà
Je mets à disposition le code macro pour changer la couleur d'une cellule par double clic
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
If Not Application.Intersect(Target, [plage de donnée d'intérêt] : ex : [A2:B2]) Is Nothing Then
couleurs = Array(RGB(153, 204, 0), RGB(255, 255, 255)) (ici vos code couleur en RGB le 255x3 c'est le blanc, vous pouvez en rajouter d'autres)
On Error GoTo color
Target.Interior.color = couleurs(Application.WorksheetFunction.Match(Target.Interior.color, couleurs, 0) Mod 3)
Cancel = True
Exit Sub
color:
Target.Interior.color = couleurs(0)
Cancel = True
End If
End Sub
Bonne soirée !!