Excel - VBA - cellule couleur - Reset
Résolu
Misterbean1
Messages postés
53
Statut
Membre
-
Misterbean1 Messages postés 53 Statut Membre -
Misterbean1 Messages postés 53 Statut Membre -
Bonjour,
j'ai un code qui me permet de mettre en couleur certaines cellules. Il s'agit d'un calendrier mensuel, chaque cellule correspondant à un jour.
j'aimerais créer une macro qui me permette de faire un reset sur ces cellules, c'est à dire vider les cellules de leur couleur (ou les remplir en blanc, voir code ci-dessous: RGB 255,255,255)à chaque changement de mois, mais ensuite pouvoir à nouveau les "colorier" lorsque je double clique dessus.
Voici le code initial qui colorie les cellules sur double click.
Quelqu'un pourrait m'aider (je suis un novice en VBA).
D'avance merci !!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
couleurs = Array(RGB(255, 0, 0), RGB(0, 0, 255), RGB(255, 255, 255))
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 Sub
j'ai un code qui me permet de mettre en couleur certaines cellules. Il s'agit d'un calendrier mensuel, chaque cellule correspondant à un jour.
j'aimerais créer une macro qui me permette de faire un reset sur ces cellules, c'est à dire vider les cellules de leur couleur (ou les remplir en blanc, voir code ci-dessous: RGB 255,255,255)à chaque changement de mois, mais ensuite pouvoir à nouveau les "colorier" lorsque je double clique dessus.
Voici le code initial qui colorie les cellules sur double click.
Quelqu'un pourrait m'aider (je suis un novice en VBA).
D'avance merci !!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
couleurs = Array(RGB(255, 0, 0), RGB(0, 0, 255), RGB(255, 255, 255))
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 Sub
A voir également:
- Excel - VBA - cellule couleur - Reset
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Liste déroulante excel - Guide
- Comment reset un pc - Guide
- Proteger cellule excel - Guide
4 réponses
Bonjour,
Remplace MOD3 par Mod 4
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
couleurs = Array(RGB(255, 0, 0), RGB(0, 0, 255), RGB(255, 255, 255))
On Error GoTo color
Target.Interior.color = couleurs(Application.WorksheetFunction.Match(Target.Interior.color, couleurs, 0) Mod 4)
Cancel = True
Exit Sub
color:
Target.Interior.color = couleurs(0)
Cancel = True
End Sub
Remplace MOD3 par Mod 4
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim couleurs()
couleurs = Array(RGB(255, 0, 0), RGB(0, 0, 255), RGB(255, 255, 255))
On Error GoTo color
Target.Interior.color = couleurs(Application.WorksheetFunction.Match(Target.Interior.color, couleurs, 0) Mod 4)
Cancel = True
Exit Sub
color:
Target.Interior.color = couleurs(0)
Cancel = True
End Sub
Bonjour
j'aimerais créer une macro qui me permette de faire un reset sur ces cellules, c'est à dire vider les cellules de leur couleur (ou les remplir en blanc,
Je ne sais pas si j'ai compris le pb.
Une procedure qui colorie en blanc la plage A1:A5
Salutations à Mike en passant
Cdlmnt
j'aimerais créer une macro qui me permette de faire un reset sur ces cellules, c'est à dire vider les cellules de leur couleur (ou les remplir en blanc,
Je ne sais pas si j'ai compris le pb.
Une procedure qui colorie en blanc la plage A1:A5
Public Sub RAZ()
Const plage = "A1:A5"
Range(plage).Interior.color = RGB(255, 255, 255)
End Sub
Salutations à Mike en passant
Cdlmnt
Merci ccm81, c'est exactement çà mais je dois associer à plusieurs range/cellules en un coup. Càd qu'en appuyant sur le point lié à la macro, les cellules B12, D12, F12 ainsi que B16, D16, F16 etc.... soient coloriées en blanc.
Peux-tu indiquer comment mentionner cela dans le code en question?
Merciiiiiiii
Peux-tu indiquer comment mentionner cela dans le code en question?
Merciiiiiiii
Re,
le code fonctionne parfaitement, par contre ce code ne convient pas associé à un bouton.
premier double clic la cellule devient rouge si elle est sans couleur ou passe à la couleur suivante soit bleu ou sans couleur si elle est bleu, le code
RGB(255, 255, 255) colorise la cellule en blanc et il vaudrait mieux utiliser la syntaxe (xlNone) soit sans couleur
regarde le fichier joint
https://www.cjoint.com/c/EAdpzPo9zhe
le code fonctionne parfaitement, par contre ce code ne convient pas associé à un bouton.
premier double clic la cellule devient rouge si elle est sans couleur ou passe à la couleur suivante soit bleu ou sans couleur si elle est bleu, le code
RGB(255, 255, 255) colorise la cellule en blanc et il vaudrait mieux utiliser la syntaxe (xlNone) soit sans couleur
regarde le fichier joint
https://www.cjoint.com/c/EAdpzPo9zhe
Re,
Alors s'il n'est plus question de changement de couleur comme dans ton code initial, cela devient beaucoup plus simple
crée un bouton activex (un CommandButton) et le code sera
Private Sub CommandButton1_Click()
[B12:C12,F12,B16:C16,F16].Interior.ColorIndex = xlNone
[B12].Activate
End Sub
ou si tu veux utiliser le code couleur RGB
Private Sub CommandButton1_Click()
[B12:C12,F12,B16:C16,F16].Interior.color = RGB(255, 255, 255)
[B12].Activate
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Alors s'il n'est plus question de changement de couleur comme dans ton code initial, cela devient beaucoup plus simple
crée un bouton activex (un CommandButton) et le code sera
Private Sub CommandButton1_Click()
[B12:C12,F12,B16:C16,F16].Interior.ColorIndex = xlNone
[B12].Activate
End Sub
ou si tu veux utiliser le code couleur RGB
Private Sub CommandButton1_Click()
[B12:C12,F12,B16:C16,F16].Interior.color = RGB(255, 255, 255)
[B12].Activate
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
A quoi correspond MOD 4 dans ta proposition (sachant que je crée un module 4 pour coller le code proposé ?
merci
MB