VBA

Résolu/Fermé
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 - 7 sept. 2009 à 09:14
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 - 7 sept. 2009 à 14:17
Bonjour,


Je cherche à afficherune userform aassez spéciale mais je débute en Visual Basic donc ne trouve pas de solution.
Voilà mon problème:

Je suis en train de créer un questionaire évolutif (les questions évoluent en fonction des réponses).
Je cherche à faire répondre à la question 1 grâce à un menu déroulant (ça j'ai réussi grâce à une liste modifiable dans ma userform à laquelle j'ai affecté une rowsource de mon document)
Ce que je cherche à faire est ensuite de faire évoluer la question 2 en fonction de la réponse 1.

Si la réponse est "a", la question est "6"
Si la réponse est "b, la question suivante est "7"
Si la réponse est "c", etc etc

Pouvez vous m'aider?

5 réponses

m@rina Messages postés 21242 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 10 janvier 2025 11 377
7 sept. 2009 à 10:40
Bonjour

Avec des IF tout simplement ou, s'il y en a beaucoup avec des SELECT CASE

Je ne sais pas comment est faite ta UserForm mais il paraît inutile de faire plusieurs questions, mieux vaut les gérer dans le VBA.
On suppose que la question est un LABEL et qu'il est dépendant de ta réponse TEXTBOX1, ça donnera à peu près ça :

réponse = Me.TextBox1.Value
Select Case réponse
Case "a"
Me.Label2.Caption = "question 6"
Case "b"
Me.Label2.Caption = "question 7"
Case "c"
Me.Label2.Caption = "question 8"
End Select



m@rina
0
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 369
7 sept. 2009 à 10:54
Alors ton truc marche pour des réponses écrites dans une zone de texte.

Mais comment faire changer la question quand la réponse de la question précédente a été choisie dans une liste modifiable?

merci
0
m@rina Messages postés 21242 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 10 janvier 2025 11 377
7 sept. 2009 à 12:52
C'est la même chose !
Tu remplaces Textbox1 par le nom de la liste déroulante (ComboBox).

m@rina
0
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 369
7 sept. 2009 à 13:59
Private Sub combobox1_change()
réponse = ComboBox1.Value
Select Case réponse
Case "essence"
Me.Label2.Caption = "question 6"
Case "gaz"
Me.Label2.Caption = "question 7"
Case "électricité"
Me.Label2.Caption = "question 8"
End Select
End Sub

Alors j'ai mis ceci mais lorsque je change de données dans ma liste, aucune "question" ne s'affiche.

Où est le bug?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 369
7 sept. 2009 à 14:17
C'est bon j'ai trouvé le souci.
J'ai changé

Private Sub combobox1_change()

par

Private Sub combobox1_click()

Merci pour tout!

0