Création d'un programme 2 questions / 4 réponses

Bonjour,

Je débute en programmation et je dois concevoir un système de 2 questions et 4 réponses mais je ne sais pas comment m'y prendre,

Pouvez-vous m'aider svp ?

Je joins ce que j'ai déjà essayé de faire.

Merci d'avance.

22exercice.xlsm (18.28 Ko)

Bonjour charlowkomes,

je te retourne ton fichier modifié :

13exercice.xlsm (17.26 Ko)

merci de me dire si ça te convient.

dhany

Bonjour,

bonjour Dhany,

solution avec vba

Sub exercice_oui_non()
    Dim Question
    Question = MsgBox("Question 1", vbYesNo, "Question 1")
    If Question = vbYes Then
        Question = MsgBox("Question 2a", vbYesNo, "Question 2a")
        If Question = vbYes Then    'réponse oui à la question 2
            MsgBox "Votre cadeau est un livre"
        Else    'réponse non à la question 2
            MsgBox "Votre cadeau est une bouteille"
        End If
    Else    'reponse non à la question 1
        Question = MsgBox("Question 2b", vbYesNo, "Question 2b")
        If Question = vbYes Then    'réponse oui à la question 2
            MsgBox "Votre cadeau est une brouette"
        Else    'réponse non à la question 2
            MsgBox "Votre cadeau est un paquet de frites"
        End If
    End If
End Sub

salut h2so4,

j'aime bien ton 3ème cadeau : la brouette !

c'est pour dire « vous avez gagné des brouettes » ?

(j'préfère encore l'paquet d'frites ! )

dhany

Bonjour Dhany,

Merci beaucoup pour votre réponse,

Le système avec la fonction Si marche très bien

En fait, il faut que je créé un programme affichant des Messages box,

La première MsgBox posant la question 1,

On répond par oui ou non

La deuxième MsgBox posant la question 2

On répond par oui ou non

La troisième MsgBox affiche la réponse

Est ce que vous sauriez m'expliquer comment générer le code à partir de ce que vous avez fait ?

Merci d'avance.

Je n'avais pas vu le VBA dsl

si tu as besoin d'un code VBA avec des MsgBox,

la solution de h2so4 convient très bien !

dhany

on s'est croisés, et quand j'ai fait ma solution avec validation des données,

j'avais zappé qu'tu voulais un programme en code VBA !

si jmd passe par ici, ça va bien l'amuser, que moi j'loupe une occase de faire

un code VBA ! mais tu vois, jmd, ta solution du 0% VBA marche pas ici !

dhany

Merci dhany et h2so4 pour vos réponses !

Le programme fonctionne à merveille

Juste pour ma connaissance personnelle concernant le VBA,

- Quand on présente Dim Question on a pas besoin de dire as quelque chose ?

-De plus, est ce que les alinéas ont de l'importance dans le code ou cela aide uniquement pour la lecture (ce qui est vraiment utile d'ailleurs )?

Encore une fois merci !!

tu a écrit :

Quand on présente Dim Question on a pas besoin de dire as quelque chose ?

une variable déclarée sans type est par défaut une variable de type Variant ; c'est donc comme si on avait mis :

Dim Question As Variant ; comme le retour de MsgBox est un Integer, tu peux mettre :

Dim Question As Integer ; ou Dim Question% car ici, % est le caractère de déclaration de type pour Integer


tu a écrit :

est-ce que les alinéas ont de l'importance dans le code ou cela aide uniquement pour la lecture (ce qui est vraiment utile d'ailleurs ) ?

oui, les alinéas qui constituent ce qu'on appelle « indentation » ont une très grande importance pour la lisibilité du code VBA ! même si fonctionnellement un code VBA sans aucune indentation marche aussi bien que le même avec indentation, c'est largement préférable d'indenter le code, et ça fait partie des règles de la programmation structurée.

dhany

@charlowkomes

allez, pour faire plaisir à jmd (qui adore les solutions VBA), je propose ce code VBA,

basé sur l'idée de h2so4, avec les mêmes superbes cadeaux (y compris la brouette) :

Option Explicit

Sub Test()
  Dim Cadeau, Q%, n As Byte
  Cadeau = Array("un livre", "une bouteille", "une brouette", "un paquet de frites")
  Q = MsgBox("Question 1", 4, "Question 1")
  If Q = 6 Then
    Q = MsgBox("Question 2a", 4, "Question 2a"): If Q <> 6 Then n = 1
  Else 'réponse non à la question 1
    Q = MsgBox("Question 2b", 4, "Question 2b"): n = IIf(Q = 6, 2, 3)
  End If
  MsgBox "Votre cadeau est " & Cadeau(n) & ".", 64, "Cadeau"
End Sub

note bien que la variable Cadeau est sans déclaration de type ; c'est voulu, car c'est ce

qu'il faut pour une variable utilisée avec un Array (taille non fixe) ; car dans cette ligne :

Cadeau = Array("un livre", "une bouteille", "une brouette", "un paquet de frites")

tu peux ajouter d'autres cadeaux ; attention : les indices sont à partir de 0 !

donc : Cadeau(0) = "un livre" ; ... ; Cadeau(3) = "un paquet de frite"

dhany

@dhany

Merci beaucoup pour cette deuxième version de code !

Je viens de la voir

Je pense que je vais mettre plus de temps à l'analyser

Mais c'est très bien pour s'exercer !

Merci encore,

Bonne journée

Bonjour charlowkomes,

merci pour ton retour !

bonne chance pour l'analyse, et si besoin, n'hésite pas à m'demander une précision.

bonne journée à toi aussi !

dhany

Rechercher des sujets similaires à "creation programme questions reponses"