Récupérer valeur OptionButton dans tableau

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

  • QUESTIONNAITRE RPSv2.xlsm
    42.4 KB · Affichages: 57
  • QUESTIONNAITRE RPSv2.xlsm
    42.4 KB · Affichages: 70
  • QUESTIONNAITRE RPSv2.xlsm
    42.4 KB · Affichages: 67
Dernière édition:

kjin

XLDnaute Barbatruc
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
 

Thibaud123

XLDnaute Nouveau
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

  • QUESTIONNAITRE RPSv3.xlsm
    46.9 KB · Affichages: 59

pierrejean

XLDnaute Barbatruc
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

  • QUESTIONNAITRE RPSv2.xlsm
    34.8 KB · Affichages: 68
  • QUESTIONNAITRE RPSv2.xlsm
    34.8 KB · Affichages: 84
  • QUESTIONNAITRE RPSv2.xlsm
    34.8 KB · Affichages: 88

Thibaud123

XLDnaute Nouveau
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
 

Thibaud123

XLDnaute Nouveau
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 :p

Encore merci Kjin!

Thibaud
 

kjin

XLDnaute Barbatruc
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

  • thibaud_3.xls
    57.5 KB · Affichages: 67

Thibaud123

XLDnaute Nouveau
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
 

Thibaud123

XLDnaute Nouveau
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

  • QUESTIONNAITRE RPSv2 (1).xlsm
    93.4 KB · Affichages: 56
  • QUESTIONNAITRE RPSv2 (1).xlsm
    93.4 KB · Affichages: 66
  • QUESTIONNAITRE RPSv2 (1).xlsm
    93.4 KB · Affichages: 62

kjin

XLDnaute Barbatruc
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
 

pierrejean

XLDnaute Barbatruc
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

  • QUESTIONNAITRE RPSv2.xlsm
    40.1 KB · Affichages: 75
  • QUESTIONNAITRE RPSv2.xlsm
    40.1 KB · Affichages: 79
  • QUESTIONNAITRE RPSv2.xlsm
    40.1 KB · Affichages: 80

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur