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. Pièce jointe 530242
Version imprimable
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. Pièce jointe 530242
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:
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:
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