Voila mon soucis
je veux qu'une cellule se grise après avoir cliquer sur une case à cocher et inversement.
Voici mon code, pouvez-vous m'aider ?
Sub CheckBox1_Click()
Dim rg As Range
Set rg = Range("F4")
If CheckBox1.Value Then
With rg.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = x1Automatic
End With
Else
rg.Interior.ColorIndex = x1None
End If
End Sub
Sub CheckBox1_Click()
Dim rg As Range
Set rg = Range("F4")
rg.Select
With Selection
If rg.Interior.ColorIndex = 15 Then rg.Interior.ColorIndex = x1None
Else
rg.Interior.ColorIndex = 15
End If
End With
End Sub
à tester
-->Message édité par willyplaisir le 03/12/2008 22:13:07<--
Voila mon soucis
je veux qu'une cellule se grise après avoir cliquer sur une case à cocher et inversement.
Voici mon code, pouvez-vous m'aider ?
Sub CheckBox1_Click()
Dim rg As Range
Set rg = Range("F4")
If CheckBox1.Value Then
With rg.Interior
.ColorIndex = 15
.Pattern = xlSolid
.PatternColorIndex = x1Automatic
End With
Else
rg.Interior.ColorIndex = x1None
End If
End Sub
Salut
Je suppose que c'est une case à cochée issue de la barre d'outils "Boîte à outils contrôle et que la macro est sur le module lié à la feuille (en mode création => Clic-droit>>Menu contextuel>>Code)
Ta macro semble correcte, un peu complexifiée, mais "ne marche pas" ne permet pas de trouver ce qui cloche. Met un point d'arrêt sur la ligne de titre de la macro et avance pas-à-pas avec F8. regarde à quelle ligne elle "ne marche pas" (remarque, ça semble normal, vu qu'elle n'a pas de jambe)
La même en plus simple :
Private Sub CheckBox1_Click()
If Me.CheckBox1 Then [F4].Interior.ColorIndex = 15 Else [F4].Interior.ColorIndex = xlNone
End Sub
A+
-------
Plus tu es moins précis, moins les réponses sont plus adaptées!
La qualité et la précision de la réponse sont proportionnelles à celles de la question, et la conditionne.
j'apprécie ta formule simplifiée, mais elle ne fonctionne pas si la cellule est grisée au départ.
Private Sub CheckBox1_Click()
If Me.CheckBox1 Then [F4].Interior.ColorIndex = 15 Then[F4].Interior.ColorIndex = xlNone
Else [F4].Interior.ColorIndex = 15
End Sub
Salut
2 remarques :
La macro ne contient que 3 lignes :
Private sub....
If Me.CheckBox1 Then [F4].... else [F4]...
end sub
la formule s'en fout de la couleur de départ : quand elle agit, elle regarde la valeur de la case, si elle est cochée, elle grise, si elle n'est pas cochée, elle remet la couleur en Automatique
A+
-------
Plus tu es moins précis, moins les réponses sont plus adaptées!
La qualité et la précision de la réponse sont proportionnelles à celles de la question, et la conditionne.
merci pour tes remarques, je ne connaissais cette commande Me. avec checkBox1
j'espère que SEBdu28 appréciera la macro.
Salut
Me. n'est pas réellement une commande. C'est une variable qui fait référence à l'objet support. C'est plus facile que de nommer la feuille (ou l'USF).
Quand au problème de SEBdu28, je pense que ce n'est pas son codage qui pose problème.
A+
-------
Plus tu es moins précis, moins les réponses sont plus adaptées!
La qualité et la précision de la réponse sont proportionnelles à celles de la question, et la conditionne.
J'ai posé cette question à plusieurs informaticiens, jusqu'à maintenant aucune réponse ...
mais grâce ... à willyplaisir merci à toi, tu as résolu mon problème et simplement !
suis content pour toi.
suis pas informaticien.... mais je joue aux billes comme les ptits enfants (protons, neutrons...) et je connais un peu l'informatique et VBA sous Excel
Est-il possible de faire à partir d'un code : pouvoir inclure plusieurs checkbox et griser plusieurs cellules.
C'est pour éviter à avoir à recopier le code plusieurs fois.
Merci beaucoup pour votre aide. (sur les 2 sites)