Action Ckeckbox uniquement lorsque actionnée par l'utilisateur

micky01

XLDnaute Occasionnel
Bonjour à tous,
Sauriez vous me dire si il est possible de n'exécuter l'action programmée uniquement lorsque la case d'une checkbox est cochée par l'utilisateur?
En gros, si c'est l'utilisateur qui coche avec sa souris, l'action s'exécute (ouverture d'un message), si c'est une macros qui active la checkbox, l'action ne s'exécute pas.

Merci par avance de vos lumières.

A plus
 

Tentative

XLDnaute Occasionnel
Re : Action Ckeckbox uniquement lorsque actionnée par l'utilisateur

Bonjour,

Peut-être comme ceci, c'est le click de la souris :
Il rester à adapter le nom du checkbox et le code à y inscrire

Code:
Private Sub CheckBox1_Click()
  ' code ici
End Sub


Tentative
 

Paf

XLDnaute Barbatruc
Re : Action Ckeckbox uniquement lorsque actionnée par l'utilisateur

Bonjour micky01, Tentative

Si l'on est dans un USF, le fait d'utiliser, dans Private Sub UserForm_Initialize() le codeCheckBox1.Value = True, va déclencher Private Sub CheckBox1_Click(); et si j'ai bien compris, c'est ce qu'on veut empêcher.

L'utilisation de Application.EnableEvents = False ne fonctionne pas pour les évènements de contrôles. Dans la situation présentée ( à adapter pour une autre situation) on peut "ruser" en utilisant une variable booléenne (déclarée en globale dans le module de l'USF) de cette façon:

Code:
Public EventCheck As Boolean

Code:
Private Sub UserForm_Initialize()
 EventCheck = False
 CheckBox1.Value = True
End Sub

Code:
Private Sub CheckBox1_Click()
 If EventCheck = False Then
    EventCheck = True
    Exit Sub
 End If
 MsgBox "clic checkbox"
End Sub

A+
 

Discussions similaires

Réponses
8
Affichages
681
Réponses
3
Affichages
975

Statistiques des forums

Discussions
312 452
Messages
2 088 535
Membres
103 879
dernier inscrit
JJB2