Problème de macro excel, débloquer une boucle infinie.

bonnie01 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
bonnie01 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis étudiant et j'ai un projet à rendre pour demain et malgré mes efforts rien ne marche, donc je commence un peu à désespérer. J'ai créer différents boutons, dans le but ne créer un qcm. J'ai donc créé plusieurs pages, l'une avec les questions l'une avec les réponses et une autre qui va servir à collecter la réponse du joueur. mon problème se trouve dans la macro de mon bouton. Alors que mon jeu s'exécute très bien il semble que j'ai créer une boucle infinie... En effet je souhaite que lorsque le joueur à bien répondu, le jeu continu sinon le jeu s'arrête, mais je ne sais pas pourquoi, après m'avoir dit perdu ou gagné le jeu ne passe pas à l'autre question. C'est sur ce point que j'ai besoin de votre aide. voici la macro de mon bouton:

Private sub bouton1_Click()
Sheets(5).Range("A1") = bouton1.Caption

Dim FinduJeu As Boolean

Do While FinduJeu = False

For i = 1 To 24 Step 1

If Sheets(5).Range("A1") = Sheets("réponse").Range("A" & i) Then

MsgBox (" bonne réponse!")
FinduJeu = False

Else
MsgBox (" mauvaise réponse !")
FinduJeu = True

End If
Next
Loop
End Sub

Etant réellement mal embarqué pour demain, toute aide me sera utile.
Merci.
A voir également:

4 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
Bonjour,

Comme ceci tu devrais pouvoir fonctionner :

FinduJeu = True
Exit For
End If
0
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Salut,

Habituellement on aide pas aux devoirs, mais pour te mettre sur une piste tes deux conditions sont dans la boucle DO, donc bonne ou mauvaise réponse la boucle tourne toujours essaye de mettre un exit sub ou exit for après FinduJeu = True ou même à la place

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
bonnie01 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, super! ça m'enlève la boucle infinie c'est déjà ça de prit, mais je ne sais pas comment faire pour passer à la question suivante. J'ai dû oublier quelque chose ...
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour


je ne vois pas trop l'utilité de ton booléen mais...

proposition: on continue si réponse OK sinon on arrete

Option Explicit
Private Sub bouton1_Click()
Dim i As Byte
Sheets(5).Range("A1") = bouton1.Caption

For i = 1 To 24 
     If Sheets(5).Range("A1") = Sheets("réponse").Range("A" & i) Then
          MsgBox (" bonne réponse!")
     Else
          MsgBox (" mauvaise réponse !")
          Exit For
     End If
Next

End Sub

Michel
0
bonnie01 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Ta solution marche aussi et elle est même plus clair que la mienne, mais quand je l'applique ça ne passe pas à la question suivante ..
0