Bonjour à tous
J'ai créé un UserForm assez simple avec 2 zones de saisie (TextBox), 3 listes déroulantes (ComboBox) et un bouton de validation.
Ce que j'aimerais faire (mais je n'y parviens pas):
- Le bouton est désactivé au chargement du Userform (pas de souci à ce niveau)
- Activer le bouton de validation (enable = true) lorsque tous les champs sont remplis (les 2 zones et les 3 listes déroulantes)
- Le désactiver dès qu'il manque un champ
Le problème est que je ne vois pas ou gérér l'événement "tous les champs sont complétés ou non"
Ce que je fais pour contourner:
- Je "simule" l'activation, désactivation via la propriété Locked et ForeColor:
Descativé <=> locked =true et ForeColor en gris, Activé <=> locked= False et ForeColor en noir- Je gère le passage d'un état à un l'autre au niveau de la méthode MouseMouve de mon bouton
Mais, je ne pense pas que ce soit la bonne manière de faire.... Comme je débute avec les UF, j'aimerais partir du bon pied.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub ButtonCreerRub_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 'On "active" le bouton si l'ensemble des champs sont remplis Me.ButtonCreerRub.Locked = Not AreFieldsCompleted() Me.ButtonCreerRub.ForeColor = IIf(AreFieldsCompleted(), RGB(0, 0, 0), RGB(160, 160, 160)) End Sub 'Vérifie que l'ensemble des champs sont remplis Private Function AreFieldsCompleted() As Boolean AreFieldsCompleted = (Len(Me.TB_CodeRub.Text) <> 0) And (Len(Me.TB_LibRub.Text) <> 0) And Me.CB_ListRubP1.ListIndex <> -1 _ And Me.CB_ListRubP2.ListIndex <> -1 And Me.CB_ListRubP3.ListIndex <> -1 End Function
Merci d'avance à tous.
Partager