Récupérer valeur OptionButton dans tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Thibaud123

XLDnaute Nouveau
Bonjour,

Une question toute naïve, mais je bloque dessus malgès la consultation de différents tuto.

J'ai des questions, allant de 1 à 26 sur un Userform. Pour chaque question, j'ai 4 boutons option.

Il faut que l'utilisateur remplisse chacune des question en cochant l'un des 4 boutons option. Ceux-ci doivent avoir une valeur allant de 1 (pour le premier bouton) à 4 (pour le dernier). Ces valeurs doivent alors s'inscrire dans la dernière ligne vide d'une feuille excel.

Oui mais voila, j'ai beau chercher, je ne trouve pas comment lier mes boutons option (répartis en Frame) à une colonne en y inscrivant sa valeur, puis en passant à la ligne en dessous. Je l'avais fait il y à quelque temps avec des combobox, mais impossible de me dépatouiller avec les boutons d'option.

J'ai bien tenté :

Code:
Private Sub CommandButton9_Click()

Dim lignesuivante As Long

Sheets("Feuil2").Activate
lignesuivante = Application.WorksheetFunction.CountA(Range("H:H")) + 1
If OptionButton1 Then Cells(lignesuivante, 1) = "4"
If OptionButton2 Then Cells(lignesuivante, 1) = "3"
If OptionButton3 Then Cells(lignesuivante, 1) = "2"
If OptionButton4 Then Cells(lignesuivante, 1) = "1"

End Sub

Mais ça n'a pas fonctionné... Et avec une 50aine de question, à 4 optionbutton par question, je ne sais pas si c'est la solution la plus simple


Edit : j'ai essayé :

Code:
Private Sub Suivant1_Click()
With Worksheets("BD")
Position = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Position).Value = OptionButton1.Value Or OptionButton2.Value Or OptionButton3.Value Or OptionButton4.Value

End With
UserForm4.Show
End Sub

Il semblerait que ca m'inscrive la valeur de l'un de mes 4 option button de ma frame dans la bonne colonne. Sauf que je suis toujours en valeur VRAI/FAUX, je ne sais pas comment basculer en valeur numérique...
 

Pièces jointes

Dernière édition:
Re : Récupérer valeur OptionButton dans tableau

bonjour,
Utilise la propriété "Tag" de chaque OptionButton, dans laquelle tu inscris par exemple....
1-1 pour l'optionButton1 ---> colonne1-réponse 1
....
1-4 pour l'optionButton4 ---> colonne1-réponse 4

2-1 pour l'optionButton5 ---> colonne2-réponse 1
....
2-4 pour l'optionButton8 ---> colonne2-réponse 4
...et le code de ton bouton de validation devient
Code:
Dim col%, lig%, v%
For Each ctl In Controls
    If TypeOf ctl Is MSForms.OptionButton Then
        With Sheets("BD")
            col = Split(ctl.Tag, "-")(0)                'donne la colonne
            Val = Split(ctl.Tag, "-")(1)                'donne 1,2,3 ou 4
            lig = .Range("A65000").End(xlUp).Row + 1    'ligne
            .Cells(lig, col) = v
        End With
    End If
Next
Note que j'ai élaboré un QCM avec mode automatique ou manuel que tu trouveras sur ce forum
A+
kjin
 
Re : Récupérer valeur OptionButton dans tableau

Salut Kjin, merci pour ta réponse,

Concernant ton code, je l'ai ajouté et ai modifié les tag, mais en lancant le tout, j'ai un message d'erreur "erreur de compilation : un appel de fonction dans la partie gauche de l'affectation, doit renvoyer Variant ou Object"

Concernant les QCM, j'en ai trouvé plusieurs en cherchant sur ce forum, mais je n'ai pas trouvé le tiens.
J'en ai trouvé de très bon, mais qui demandent un niveau technique que je n'ai pas, c'est dommage.

Thib
 

Pièces jointes

Re : Récupérer valeur OptionButton dans tableau

Bonjour à tous

Salut kjin

Teste ceci
NB: Il te faudra revoir la numerotation des OptionButton afin qu'ils se suivent
 

Pièces jointes

Re : Récupérer valeur OptionButton dans tableau

Salut PierreJean

J'ai testé ce nouveau fichier. Mais une fois mes réponses cochées, j'ai un MsgBox pour chaque question qui s'affiche et que je dois valider, sans insertion de valeurs dans ma feuille "BD".

Kjin, en changeant "Var" par "maVar", je n'ai plus le message d'erreur. Par contre, je n'ai pas les réponses aux question qui s'affichent sur la même ligne. Elles s'affiches sur plusieurs lignes par colonne et par question (Q1 : A2,A3,A4,A5 ; Q2 : B6, etc.) et uniquement des 0.

Thib
 
Re : Récupérer valeur OptionButton dans tableau

Re, salut PieereJean 🙂,
Désolé, j'avais zappé les frames intermédiaires et la valeur des opb, ça fait beaucoup !
A+
kjin

Super, ça semble fonctionner! Je te remercie beaucoup, tu m'as retiré une belle épine du pied.

Je vais terminer mes questionnaires (en reprenant ce principe, je devais pouvoir le faire seul), et voir ce que ca donne. Je reviendrais surement vers vous après 😛

Encore merci Kjin!

Thibaud
 
Re : Récupérer valeur OptionButton dans tableau

re,
Bon j'ai du remanié la bête, mais faute de temps je n'ai mis que 2 questions et il est de toute façon indispensable que tu comprennes le processus, et ça reste très basique donc pas de panique
Reviens si qq chose te chiffonne
Quant au QCM auquel je faisais allusion, vois cette discussion et reviens si tu souhaites une adaptation
A+
kjin
 

Pièces jointes

Re : Récupérer valeur OptionButton dans tableau

Kjin, tu me donnes du grain à moudre !
Je suis en train de regarder ton fichier et d'essayer de le comprendre. Mais comme je suis vraiment débutant, ça me prend du temps. J'essaierai approfondir ce week end.
Le truc, c'est que je comptes rajouter d'autres questionnaires (le but de tout ça et de construire un outil de diagnostic du stress, des situations stressantes, des facteurs, et des conséquences) par l'utilisation d'outils psychologiques et psychiatriques (pour aider les médecins du travail, je suis psy). Donc il faut que je rajoute d'autres questionnaires, et je ne sais pas si avec des codes trop poussé j'arriverai à avoir cette souplesse dans la construction.
En tout cas, je reviendrais vers vous quand j'aurai un peu plus avancé tout ça.

Laetitia, très chouette ta version! je vais voir comment exploiter l'idée!

En tout cas, merci à vous deux.

Thibaud
 
Re : Récupérer valeur OptionButton dans tableau

Re,

J'avais un peu avancé mon truc tout à l'heure, en essayant de chercher comment obliger l'utilisateur à saisir les optionbutton. J'ai réussi à trouver ça :

Code:
Private Sub Suivant1_Click()
If (OptionButton1 Or OptionButton2 Or OptionButton3 Or OptionButton4) = True Then
'code validation, enregistrement données et passage au questionnaire suivant
Else
        Frame2.BorderColor = RGB(255, 0, 0)
        MsgBox "il manque des réponses !"
End If
End Sub

Sauf que je n'arrive à le faire que pour les 4 1er opb de ma Frame2.

J'ai essayé un truc de ce genre (l'idée étant de signaler à l'utilisateur en plus de la msgbox les questions non validées) :

Code:
Private Sub Suivant1_Click()
If (OptionButton1 And OptionButton2 And OptionButton3 And OptionButton4) = False Then
      
 Frame2.BorderColor = RGB(255, 0, 0)
        MsgBox "il manque des réponses !"

Elseif(OptionButton5 And OptionButton6 And OptionButton7 And OptionButton8) = False Then

        Frame3.BorderColor = RGB(255, 0, 0)
        MsgBox "il manque des réponses !"
Else

'code validation, enregistrement données et passage au questionnaire suivant'
End If
End Sub

Mais ca ne fonctionne pas
 

Pièces jointes

Re : Récupérer valeur OptionButton dans tableau

Bonjour,
Tu peux tester....
Code:
If OptionButton1 + OptionButton2 + OptionButton3 + OptionButton4 = 0 Then
    '....
ElseIf OptionButton5 + OptionButton6 + OptionButton7 + OptionButton8 = 0 Then
    '....
ElseIf OptionButton9 + OptionButton10 + OptionButton11 + OptionButton12 = 0 Then
    '....
    'etc...
End If
....mais pour 104 boutons, cette méthode n'est quand même pas idéale alors que le module de classe évite ce genre de pb
A+
kjin
 
Re : Récupérer valeur OptionButton dans tableau

Re

Salut Kjin Bises laetitia

@ Thibaud

J'avais supposé que tu aurais pu t'inspirer de mon debut
Voila la version complete
Pour ajouter des Series de questions supplementaires , il te suffit de recopier les usf et faire les petites adaptations mentionnées en commentaire
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
334
Réponses
10
Affichages
321
Réponses
4
Affichages
242
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
592
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
203
Réponses
7
Affichages
265
Retour