Définir une variable globale + améliorations du code

Bonjour tout le monde,

J'ai créé un petit bout de code qui permet de jouer au nombre mystère (l'ordi choisit un nombre et on essaie de le deviner en un minimum d'essais) :

Public nbre_tours As Integer
Sub Nombre_mystere()
    '1) affecter à une variable le nombre mystère
    '2) Lancer une inputBox pour demander d'encoder un nombre
    '3) Vérifier si c'est le bon
    '4) Si c'est le bon, on affiche une msgbox avec le nombre de tentative
    '5) Si ce n'est pas le bon, on incrémente le nombre de fois de 1 et on ré-affiche l'input box

    'obligatoire pour créer un nombre aléatoire
    Randomize

    'déclation des variables
    Dim Nombre_mystere As Integer, ma_proposition As Integer
    Dim titre As String, commentaire As String

    'Affectation des valeurs aux variables
    Nombre_mystere = (Rnd * 10)
    MsgBox (Nombre_mystere)
    nbre_tours = 0

    Do
        'je change le titre par rapport au nombre de fois que je suis passé dans la boucle
        If nbre_tours > 0 Then
            titre = "Essayez à nouveau"
        Else
            titre = "Encodez un nombre"
        End If

        ma_proposition = InputBox("Veuillez entre un nombre entier", titre)
        nbre_tours = nbre_tours + 1

    Loop While ma_proposition <> Nombre_mystere

    Select Case nbre_fois
        Case Is = 1
            commentaire = "Félicitation, vous êtes très fort !"
            Case Is = 2
                commentaire = "Pas mal, vous pourez bientôt passer pro !"
            Case 3 To 5
                commentaire = "Encore un peu d'entrainemt..."
            Case 6 To 9
                commentaire = "Encore beaucoup d'entrainement"
            Case Else
                commentaire = "Laissez tomber, ce jeu n'est pas fait pour vous"
    End Select

    MsgBox "vous avez trouvé le nombre mystère en " & nbre_tours & " fois " & Chr(10) & commentaire

End Sub

1) Quand je sorts du Loop While, ma variable nbre_tours est toujours vide, savez-vous me dire comment je peux créer une variable globale svp ?

2) pensez-vous que je puisse améliorer ce code ?

Merci d'avance pour votre aide et bon 14 juillet.

bee

Bonjour Beegeezzz,

Quand je sors du Loop While, ma variable nbre_tours est toujours vide

Quand tu sors de la boucle, la variable nbre_tours a bien la valeur correspondant au nombre de réponses effectuées.

Le problème, c’est qu’ensuite tu effectues le test sur la variable nbre_fois qui elle n’a pas été renseignée.

Sub Nombre_mystere()
Dim nbre_tours As Integer
    '1) affecter à une variable le nombre mystère
    '2) Lancer une inputBox pour demander d'encoder un nombre
    '3) Vérifier si c'est le bon
    '4) Si c'est le bon, on affiche une msgbox avec le nombre de tentative
    '5) Si ce n'est pas le bon, on incrémente le nombre de fois de 1 et on ré-affiche l'input box
     'obligatoire pour créer un nombre aléatoire
    Randomize
    'déclation des variables
    Dim Nombre_mystere As Integer, ma_proposition As Integer
    Dim titre As String, commentaire As String
    'Affectation des valeurs aux variables
    Nombre_mystere = (Rnd * 10)
    MsgBox (Nombre_mystere)
    nbre_tours = 0
    Do
        'je change le titre par rapport au nombre de fois que je suis passé dans la boucle
       If nbre_tours > 0 Then
            titre = "Essayez à nouveau"
        Else
            titre = "Encodez un nombre"
        End If
        ma_proposition = InputBox("Veuillez entre un nombre entier", titre)
        nbre_tours = nbre_tours + 1
    Loop While ma_proposition <> Nombre_mystere
    Select Case nbre_tours
        Case Is = 1
            commentaire = "Félicitation, vous êtes très fort !"
            Case Is = 2
                commentaire = "Pas mal, vous pourez bientôt passer pro !"
            Case 3 To 5
                commentaire = "Encore un peu d'entrainemt..."
            Case 6 To 9
                commentaire = "Encore beaucoup d'entrainement"
            Case Else
                commentaire = "Laissez tomber, ce jeu n'est pas fait pour vous"
    End Select
    MsgBox "vous avez trouvé le nombre mystère en " & nbre_tours & " fois " & Chr(10) & commentaire
End Sub

A+

Bonjour,

Tu as bien crée une variable globale nbre_tours comme il fallait mais ce n'est pas cette variable que tu appelle dans select case, tu appelle nbre_fois d'où l'erreur.

Salut Raja,

Merci pour ta réponse.

Le problème était en effet là.

Excellente fin de W.E.

bee

Rechercher des sujets similaires à "definir variable globale ameliorations code"