Nombre mystere VBA
Bonjour a tous et a toutes !
J attaque la programmation en vba, et bien que je trouve ca assez sympa, cela me change beaucoup des autres langages auxquels je suis habitue ! Je suis en train de creer un Jeu du nombre mystere, et alors que je pensais avoir tout bien fait, impossible de compiler, erreur de type.... Quelqun pourrait il me donner une piste sur ce que j ai mal fait? Je colle mon code juste en dessous, merci beaucoup !!
Ps : l erreur me surligne la ligne du premier MsgBox
Private Sub CommandButton1_Click()
Dim NombreMystere As Integer
Dim NbCoups As Integer
Dim NbJoueur As Integer
Dim Quitter As Boolean
Quitter = False
NbCoups = Int(0)
NbJoueur = Int(0)
NombreMystere = Int((Rnd * 1000) + 1)
Do While Quitter = False
NbJoueur = Application.InputBox("Tentez votre Chance", "Coup ", Type:=1)
If NbJoueur > NombreMystere Then
MsgBox("Le nombre saisi est plus grand que le Nombre mystere", vbOKOnly) As VbMsgBoxResult
NbCoups = NbCoups + 1
If NbJoueur < NombreMystere Then
MsgBox("Le nombre saisi est plus petit que le nombre mystere", vbOKOnly) As VbMsgBoxResult
NbCoups = NbCoups + 1
End If
Else
MsgBox("Bravo, vous avez trouve le nombre mystere qui etait " & NombreMystere & " ", vbOKOnly) As VbMsgBoxResult
Quitter = True
End If
Loop
End Sub
Bonjour,
Je verrai plutôt ton code comme ceci, à voir si il te convient bien sûr :
Private Sub CommandButton1_Click()
Dim NombreMystere As Integer
Dim NbCoups As Integer
Dim NbJoueur As Integer
'Quitter = False <--- valeur par défaut pas besoin de préciser
'NbCoups = Int(0) <--- valeur par défaut pas besoin de préciser
'NbJoueur = Int(0) <--- valeur par défaut pas besoin de préciser
Randomize
NombreMystere = Int((Rnd * 1000) + 1)
Do While Quitter = False
NbJoueur = Application.InputBox("Tentez votre Chance", "Coup ", Type:=1)
Select Case NombreMystere
Case Is < NbJoueur
'permet de sortir si le joueur en a marre
If MsgBox("Le nombre saisi est plus grand que le Nombre mystère" & vbCrLf & vbCrLf & "Continuer ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
NbCoups = NbCoups + 1
Case Is > NbJoueur
'permet de sortir si le joueur en a marre
If MsgBox("Le nombre saisi est plus petit que le Nombre mystère" & vbCrLf & vbCrLf & "Continuer ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
NbCoups = NbCoups + 1
Case Is = NbJoueur
'MsgBox "Bravo, vous avez trouve le nombre mystere qui etait " & NombreMystere & " ", vbOKOnly
'je verrai plutôt comme ceci car le nombre mystère le joueur le connait puisqu'il vient de le saisir !
MsgBox "Bravo, vous avez trouvé le nombre mystère en " & NbCoups & " coups !"
Exit Sub
End Select
Loop
End Sub
Wow, ca c est une reponse rapide, merci beaucoup de ton aide ! Oui en effet ton vba fonctionne tres bien, mais du coup pourquoi le mien ne fonctionnait il pas ? Je vais comparer pour comprendre ! Encore une fois merci de ton aide
Edit :
Du coup j ai trouve ( ta solution m a beaucoup aide mais je voulais absolument comprendre pourquoi le mien buguait) , probleme de syntaxe avec le MsgBox , je ne conaissais pas Case Select, ca c est un plus
Du coup j ai retape mon code en suivant ta syntaxe MsgBox ( sans autant de choix car je veux les apprendre avant de les recopier betement) et en gardant le If / End If, et en rajoutant le compteur de coups , et.......ca fonctionne !!!!!!
Maintenant je m attaque aux fonctions que tu m as montre et que je ne comprends pas
Bonne journee et merci !!!