Gestion du sur checkbox
Le
ThierryP

Bonjour,
Je suis perplexe.. J'ai un checkbox sur une feuille; si je le coche, je =
fais quelque chose, si je le décoche je fais autre chose. Voilà ce que =
ça donne selon moi :
Private Sub BLab_Click()
Application.EnableEvents = False
If BLab Then
BLab = False
Union(Range("B_Lab"), Range("B_Lab_Cal"), Range("B_Lab_Cell")).Font.Col=
orIndex = 2
Else
BLab = True
Union(Range("B_Lab"), Range("B_Lab_Cal"), Range("B_Lab_Cell")).Font.Col=
orIndex = xlAutomatic
End If
Application.EnableEvents = True
End Sub
Or, ma procédure se fiche éperdument de mon "enableevents=false" et b=
oucle allègrement 7 ou 8 fois à chaque changement d'état (BLab= Fal=
se ou True). D'ailleurs, je ne comprends même pas pourquoi elle finit par=
s'arrêter toute seule.. La fatigue ??????
Qu'est-ce qui ne va pas, à part moi ?
Merci d'avance
ThierryP
Je suis perplexe.. J'ai un checkbox sur une feuille; si je le coche, je =
fais quelque chose, si je le décoche je fais autre chose. Voilà ce que =
ça donne selon moi :
Private Sub BLab_Click()
Application.EnableEvents = False
If BLab Then
BLab = False
Union(Range("B_Lab"), Range("B_Lab_Cal"), Range("B_Lab_Cell")).Font.Col=
orIndex = 2
Else
BLab = True
Union(Range("B_Lab"), Range("B_Lab_Cal"), Range("B_Lab_Cell")).Font.Col=
orIndex = xlAutomatic
End If
Application.EnableEvents = True
End Sub
Or, ma procédure se fiche éperdument de mon "enableevents=false" et b=
oucle allègrement 7 ou 8 fois à chaque changement d'état (BLab= Fal=
se ou True). D'ailleurs, je ne comprends même pas pourquoi elle finit par=
s'arrêter toute seule.. La fatigue ??????
Qu'est-ce qui ne va pas, à part moi ?
Merci d'avance
ThierryP
Le mercredi 20 février 2013 16:40:34 UTC+1, ThierryP a écrit :
essai en ajoutant le nom de la feuille
Sheets("Feuil1").CheckBox1
isabelle
Le 2013-02-20 10:48, ThierryP a écrit :
Ben.... pas concluant ! La seule différence visible, c'est que la case re ste obstinément à False.
Mais pourquoi le fait de rajouter le nom de feuille change-t-il le comporte ment de la case ??
ThierryP
Le mercredi 20 février 2013 17:21:39 UTC+1, isabelle a écrit :
je ne comprend pas pourquoi tu change la valeur du CheckBox dans la macro?
isabelle
Le 2013-02-20 11:43, ThierryP a écrit :
Essaie comme ceci :
'----------------------------------
Private Sub BLab_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
BLab = Not BLab
If BLab = False Then
Union(Range("B_Lab"), Range("B_Lab_Cal"),
Range("B_Lab_Cell")).Font.ColorIndex = 2
Else
Union(Range("B_Lab"), Range("B_Lab_Cal"),
Range("B_Lab_Cell")).Font.ColorIndex = xlAutomatic
End If
BLab.Select
End Sub
'----------------------------------
A ) La commande "Application.EnableEvents" n'a aucun impact sur
les événements des boutons de la barre d'outils "Contrôle". Elle
ne contrôle que les événements dans l'application Excel (événements
de la feuille et du Thisworkbook.
B ) Quand tu cliques sur le checkbox, cet événement modifie la valeur
du checkbox. Si tu modifies par le code la valeur du Checkbox, ceci
appelle la commande de l'événement "Clic"
C ) Il s'agit de choisir et d'adapter d'autres événements en fonction
du but recherché.
D ) Supprime l'événement Clic du module.
MichD
---------------------------------------------------------------
En fait, je voulais :
- en cochant la case, faire apparaitre un texte qui demande à l'utilisate ur des infos complémentaires
- en décochant, faire disparaître ce texte.
Visiblement, je n'ai pas choisi la bonne solution !!!
Merci
Le mercredi 20 février 2013 18:01:36 UTC+1, isabelle a écrit :
Comme je l'ai dit à Isabelle, je n'ai pas choisi la bonne solution !! Je voulais quelque chose de visuel pour l'impression, mais je vais utiliser un bouton bascule en changeant le caption et ça devrait le faire.
J'ai testé ta proposition, mais elle a également un fonctionnement erra tique : je dois cliquer plusieurs fois sur la case pour voir un changement, donc c'était vraiment une mauvaise idée de ma part !!
Merci à toi également
ThierryP
Le mercredi 20 février 2013 20:34:07 UTC+1, MichD a écrit :
Private Sub CheckBox1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If CheckBox1 = False Then
Union(Range("B_Lab"), Range("B_Lab_Cal"),
Range("B_Lab_Cell")).Font.ColorIndex = 2
Exit Sub
Else
Union(Range("B_Lab"), Range("B_Lab_Cal"),
Range("B_Lab_Cell")).Font.ColorIndex = xlAutomatic
Exit Sub
End If
End Sub
MichD
---------------------------------------------------------------
sauf pour une raison que j'ignore ;-) cette ligne
n'aurait pas dû faire partie de la macro:
BLab = Not BLab
MichD
---------------------------------------------------------------
Pour un utilisateur lambda, la case à cocher est beaucoup plus "parlante" que le togglebutton !
Merci :-)))
ThierryP
Le jeudi 21 février 2013 13:17:04 UTC+1, MichD a écrit :