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 !!!

Rechercher des sujets similaires à "nombre mystere vba"