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.
A voir également:

3 réponses

Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61 > Utilisateur anonyme
 
Bonjour Whismeril. Vu :) Je retire :)
0
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
sawcraft76 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   2 > pijaku Messages postés 12263 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
Utilisateur anonyme
 
Salut pijaku, ça va et toi?

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

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