Problème programme bloc-note

sawcraft76 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour, comme je suis novice à la programmation, je m'entraîne à créer des petits programmes. Là j'aimerai créer (pour apprendre) un quiz mais je rencontre un problème. voici le programme:

msgbox "Bonjour l'ami !"_
+ chr(13) _ 
+ chr(13) _ 
+ "ça va bien ?"_
+ chr(13) _ 
+ "Au pire je m'en fou :)"_
+ chr(13) _ 
+ "Ne le prend pas mal :P"_

strMessage = "Bon pour me faire pardonner, veux-tu jouer à un quizzzzzzzzzzzzzz ?"
vbRep = MsgBox(strMessage, vbYesNo)

If (vbRep = vbYes) Then
    MsgBox "c'est cool... ou pas"
Elself
    If (vbRep = vbNo) Then
        MsgBox "Va te faire [CENSURE] cordialement :)"
    End If
End If

InputBox "Combien fait 10+15 ? 25 ou 35 ?","Première question"

If (nombre = 25) then
    MsgBox "C'était dur OMG ! Bon je sais que je ne suis pas très bon acteur..."_
Else'Erreur ici
      If (nombre = 35) then
          MsgBox "Je crois qu'il n'y existe pas plus bête que toi X)"
      End If
End If

Là où il y a le commentaire "Erreur ici", le programme me dit:
Erreur: Cette instruction doit être la première de la liste.
Avec le code: 800A0412.
La source: Erreur de compilation Microsoft VBScript

Donc si vous savez comment régler le problème et aussi si vous avez quelques petites astuces dans la programmation , je suis preneur ;)

Merci d'avance !

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour,

    Dommage pour l'Edit, les balises de code empêchent de voir ce qui est souligné.

    Sinon pour le code je l'aurais écrit comme ça :

    Sub TEST()
    
    Dim strMessage As String 'Définition de la variable strMessage
    Dim nombre As Long 'Définition de la variable nombre
    
    msgbox "Bonjour l'ami !"_
    + chr(13) _ 
    + chr(13) _ 
    + "ça va bien ?"_
    + chr(13) _ 
    + "Au pire je m'en fou :)"_
    + chr(13) _ 
    + "Ne le prend pas mal :P"_
    
    strMessage = "Bon pour me faire pardonner, veux-tu jouer à un quizzzzzzzzzzzzzz ?"
    vbRep = MsgBox(strMessage, vbYesNo)
    
    If vbRep = vbYes Then
        MsgBox ("c'est cool... ou pas")
    Else
    If vbRep = vbNo Then
        MsgBox ("Va te faire [CENSURE] cordialement")
    End If
    
    nombre = InputBox ("Combien fait 10+15 ? 25 ou 35 ?","Première question")
    
    If nombre = 25 Then
        MsgBox ("C'était dur OMG ! Bon je sais que je ne suis pas très bon acteur..."_)
    Else
      If (nombre = 35) Then
         MsgBox ("Je crois qu'il n'y existe pas plus bête que toi X")
      End If
    End If
    
    End Sub
    1
    1. Utilisateur anonyme
       
      Non non, j'ai mis un commentaire Erreur Ici, à la ligne soulignée.
      Je n'ai pas pensé à modifier le texte par contre, ce que je viens de faire
      0
      1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65 > Utilisateur anonyme
         
        Bonjour Whismeril. Vu :) Je retire :)
        0
  2. Utilisateur anonyme
     
    D'ailleurs, en prenant le temps de lire le code(ce que je n'ai pas fait hier) et grâce à la coloration syntaxique, le bug est rapidement identifiable.

    C'est le tiret bas à la fin de la ligne 24, ce caractère indique au compilateur que l'instruction (qui normalement s'écrit sur une seule ligne) se poursuit à la ligne d'après, le seul intérêt est le confort de lecture.

    Tu l'utilises correctement lignes 1 à 8, il ne devrait pas apparaître en fin de ligne 9, mais comme la ligne 10 est vide ça ne plante pas.

    Par contre en ligne 25 il y a l'instruction Esle, qui ne peut pas être associée avec le messageBox, donc ça plante.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Salut tout le monde,

      Comment ça va?
      Hé hé, bien vu Whismeril!
      Le petit _ underscore qui bousille tout!

      Mais bon, on s'achemine tout doucettement vers la seconde erreur de compilation...
      ElseIf
      If

      des lignes 15 et 16.
      Voici donc le code corrigé :
      msgbox "Bonjour l'ami !"_
      + chr(13) _ 
      + chr(13) _ 
      + "ça va bien ?"_
      + chr(13) _ 
      + "Au pire je m'en fou :)"_
      + chr(13) _ 
      + "Ne le prend pas mal :P"_
      
      strMessage = "Bon pour me faire pardonner, veux-tu jouer à un quizzzzzzzzzzzzzz ?"
      vbRep = MsgBox(strMessage, vbYesNo)
      
      If (vbRep = vbYes) Then
          MsgBox "c'est cool... ou pas"
      Else
          If (vbRep = vbNo) Then
              MsgBox "Va te faire [CENSURE] cordialement :)"
          End If
      End If
      
      InputBox "Combien fait 10+15 ? 25 ou 35 ?","Première question"
      
      If (nombre = 25) then
          MsgBox "C'était dur OMG ! Bon je sais que je ne suis pas très bon acteur..."
      Else
            If (nombre = 35) then
                MsgBox "Je crois qu'il n'y existe pas plus bête que toi X)"
            End If
      End If
      
      0
      1. sawcraft76 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   2 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci pour la réponse mais comment savoir que je suis en bout de ligne ? (logiciel a avoir ?) Et je n'arrive pas à avoir les réponses après l'inputbox, comment faire ?
        0
    2. Utilisateur anonyme
       
      Salut pijaku, ça va et toi?

      Bien vu aussi!
      0
  3. Utilisateur anonyme
     
    Que veux tu dire par
    comment savoir que je suis en bout de ligne ?

    0
    1. sawcraft76 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   2
       
      Tu dis que l'instruction donné ne dois faire qu'une seule ligne pour pour que cela fonctionne mais comme je suis sur bloc-note, il n'y a pas de limite d'écriture sur une ligne donc je ne peux pas savoir quand on est en fin de ligne.

      Quand je regards mon programme je ne vois pas que l'instruction fait 2 lignes (elle ne fait qu'une seule).

      Alors j'aimerai savoir (si il y a un logiciel ou autre) comment je peux dire que je suis en fin de ligne.
      0
    2. Utilisateur anonyme
       
      La "ligne" de programmation n'a pas de limite de longueur, en soit, il y a une instruction par ligne, c'est ça la limite.

      Donc par exemple la ligne avec l'instruction Else ne fait qu'un mot.

      Alors que l'initialisation d'une message box peut faire "10 km"
      0