Question sur le cours VBA "Les controles - Les boutons d'option"

Bonjour,

Merci de bien vouloir me donner un éclaircissement concernant un cours VBA de ce site.

Il s'agit de la partie : Cours VBA : "Les contrôles - Les boutons d'option (OptionButton) " avec l’exercice sur les boutons d'option (Colonne de A à E et Ligne de 1 à 5)

Ma question concerne la dernière partie de l'exercice avec ce code :

 Private Sub activer()
'Activation du bouton si la condition est vérifiée
    If colonne <> "" And ligne <> "" Then
    'colonne et ligne sont les valeurs renvoyées par les fonctions
        CommandButton1.Enabled = True
        CommandButton1.Caption = "Valider le choix"
    End If
End Sub

Private Sub OptionButton11_Click()
    activer 'Lance la procédure "activer"
End Sub
Private Sub OptionButton12_Click()
    activer
End Sub
Private Sub OptionButton13_Click()
    activer
End Sub
Private Sub OptionButton14_Click()
    activer
End Sub
Private Sub OptionButton15_Click()
    activer
End Sub
Private Sub OptionButton16_Click()
    activer
End Sub
Private Sub OptionButton17_Click()
    activer
End Sub
Private Sub OptionButton18_Click()
    activer
End Sub
Private Sub OptionButton19_Click()
    activer
End Sub
Private Sub OptionButton20_Click()
    activer
End Sub 

Le code permet d'activer le bouton si les deux fonction renvois quelque chose, donc il est principalement liée au bouton valider.

Donc je ne comprends pourquoi la procédure ne marche pas avec seulement cet partie du code :

 Private Sub activer()
'Activation du bouton si la condition est vérifiée
    If colonne <> "" And ligne <> "" Then
    'colonne et ligne sont les valeurs renvoyées par les fonctions
        CommandButton1.Enabled = True
        CommandButton1.Caption = "Valider le choix"
    End If 

Pourquoi est-on obligé de rajouter en plus la procédure "Activer" dans les évènements de chaque bouton d'option ?

J'espère avoir été claire dans ma question.

Merci d'avance pour vos éclaircissements.

Bien cordialement.

Sissou28

Bonjour Sissou28

La procédure "activer" permet, si les conditions sont vraies, de pouvoir accéder au bouton "CommandButton1" ce qui permet de valider la procédure... tout simplement.

A l'ouverture du formulaire le CommandButton1 a la propriété Enabled désactivée (False) (l'accès n'est pas possible) mais si les conditions sont vraies alors la propriété Enabled est activée (True)(l'accès est possible)

En espérant avoir été suffisamment clair

Bonjour Sissou, bonjour le forum,

Tu as pris le problème à l'envers... En fait, tu lances d'abord la procédure OptionButtonXX_Click en cliquant sur le bouton d'option XX et ensuite cela lance la procédure activer. C'est pour cela que le code de tous les boutons d'option lancent la même procédure qui fait le reste du job... Elle va d'abord définir les variables ligne et colonne à l'aide des deux fonctions. Quand elle a obtenu les deux, elle permet l'accès au bouton, qui lui, va renvoyer "Cellule choisie" dans la bonne cellule...

[Édition]

Bonjour Émile, nos posts se sont croisés...

Merci pour vos deux retours rapides,

ThauThème, je comprend mieux avec ton éclaircissement.

Si j'ai bien compris, la procédure "Activer" ne s'active qu'en cliquant sur les boutons d'option, c'est la raison pour laquelle elle doit être insérée dans le code de tous les boutons d'option.

Bonne journée,

Re,

Oui c'est exactement ça !...

Rechercher des sujets similaires à "question cours vba controles boutons option"