IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

OptionButton dans UserForm [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 19
    Par défaut OptionButton dans UserForm
    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. Nom : Capture.JPG
Affichages : 774
Taille : 151,6 Ko

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    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.

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    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

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 19
    Par défaut
    Citation Envoyé par mat955 Voir le message
    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.
    Merci Mat pour ta réponse je vais l'essayer

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 19
    Par défaut
    Citation Envoyé par Thautheme Voir le message
    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
    Merci Beaucoup Thautheme tu me sauves tout le temps, en fait c'est la premiere fois que j'entends parler des GroupName, pour chaque question j'ai creer un frame qui contient les 3 OptionButton et un label qui contient la question, ça peut marcher avec ?

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    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
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Garder l'état d'un OptionButton dans un UserForm
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 31/08/2014, 10h17
  2. [XL-2007] utilisation optionbutton dans userform avec textbox
    Par r0man0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2013, 13h35
  3. Calcul d'un ratio avec OptionButtons et frame dans Userform
    Par MaelB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/12/2012, 16h25
  4. [XL-2007] Optionbutton activé dans userform
    Par neoinfo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/11/2012, 23h02
  5. [VB.NET] Problème avec un OptionButton dans Excel 2003
    Par alfprod dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2004, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo