Problème programme bloc-note

Fermé
sawcraft76 Messages postés 58 Date d'inscription vendredi 18 octobre 2013 Statut Membre Dernière intervention 23 juin 2017 - Modifié par Whismeril le 22/10/2015 à 09:09
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 23 oct. 2015 à 07:13
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

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
Modifié par Kuartz le 22/10/2015 à 08:57
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
Modifié par Whismeril le 22/10/2015 à 09:09
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61 > Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024
22 oct. 2015 à 08:58
Bonjour Whismeril. Vu :) Je retire :)
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
22 oct. 2015 à 09:07
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
22 oct. 2015 à 14:38
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 vendredi 18 octobre 2013 Statut Membre Dernière intervention 23 juin 2017 2 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
22 oct. 2015 à 18:39
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
22 oct. 2015 à 15:31
Salut pijaku, ça va et toi?

Bien vu aussi!
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
22 oct. 2015 à 19:07
Que veux tu dire par
comment savoir que je suis en bout de ligne ?

0
sawcraft76 Messages postés 58 Date d'inscription vendredi 18 octobre 2013 Statut Membre Dernière intervention 23 juin 2017 2
22 oct. 2015 à 23:10
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
23 oct. 2015 à 07:13
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