Bonjour
Je veux que l'utilisateur n'arrive à changer de page tant qu'il n'a pas répondu à toutes les question.
J'espère que l'image vous donne une idée claire de ce que je veux.
Merci d'avance.![]()
Bonjour
Je veux que l'utilisateur n'arrive à changer de page tant qu'il n'a pas répondu à toutes les question.
J'espère que l'image vous donne une idée claire de ce que je veux.
Merci d'avance.![]()
Bonjour,
Utilise la propriété Value des OptionButton.
Tu fais un test, et si elles ont toutes la valeur False, c'est que l'utilisateur n'a cliqué sur rien du tout.
Bonjour Taha, Mat, bonjour le forum,
J'espère que tu as bien créé un GroupName pour chaque ligne de trois boutons d'option. Ensuite tu pourrais utiliser sur la flèche un code du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Image1_Click() 'au clic sur la flèche Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe) Dim T As Byte 'déclare la variable T (Total) Dim V As Byte 'déclare la variable V (Valeur) For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm (à adapter, plutôt de la page du multipage) If TypeOf CTRL Is MSForms.OptionButton Then 'condition 1 : si le contrôle est un bouton d'option If CTRL = True Then V = 1 Else V = 0 'si le contrôle est vrai V vaut 1 sinon V vaut 0 T = T + V 'définit la variable T End If 'fin de la condition Next CTRL 'prochaine contrôle de la boucle If T <> 4 Then 'condition : si T est différent de 4 MsgBox "Vous n'avez pas répondu à toutes les question !" 'message Exit Sub 'sort de la procédure End If 'din de la condition End Sub
Bonjour,
Avec des Frames:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 '---- contrôles particuliers For Each c In Me.Controls If TypeName(c) = "Frame" Then témoin = False For Each opt In c.Controls If opt.Value Then témoin = True Next opt If témoin = False Then MsgBox c.Name & "Non coché!": Controls(c.Name).SetFocus: Exit Sub End If Next c
Boisgontier
Partager