Problème pour Activation CommandButton
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
Code:
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 |
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.
Merci d'avance à tous.