Erreur sur VBScript pour calculer une date de naissance

Résolu/Fermé
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 - 5 avril 2013 à 14:56
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 - 5 avril 2013 à 16:29
a partir de son age et du jour qu'il est
et j'ai toujours l'erreur Then attendu a la 7/8ème ligne (en fonction de si vous comptez le a la ligne au début ou pas) 10ème caractère (ET bien entendu il n'y a pas de 10ème caractère sur cette ligne :-/ ...)

voici le script:

Do

annee = inputbox("en quelle annee est tu ne(e)")

mois = inputbox("en quel mois est tu ne(e)")

If input mois >12 or <1 then

msgbox "retapez la reponse en nombre."
Loop

else
End If

age = Year(now) - annee

If
mois < Month(now)
Then

age2 = age - 1
'car si on est ne au debut ou a la fin de l'annee ca change...
x = "tu as donc" & age2 & " ans."

Elself
mois > Month(now) Then

x = "tu as donc" & age & " ans."

esle

end if
Jour = Inputbox(" et quel jour?")

If Jour < Day(now) then

Age2 = age - 1

Jour2 = Day(now) - Jour

x = "tu vas donc fete ton anniversaire dans " & Jour2 & " jours!tu vas avoir " & age & "ans!"

Elself Jour > Day2 then

Jour2 = Jour - Day(now)

x = " tu viens donc tout juste de feter ton anniversaire (il y a " & jour2 & " jours ! )"

Else
x = "Bon anniversaire ! Tu fete tes " & age & "ans!"

End If

MsgBox "" & x & "" & vbNewLine
Exit
Loop

exit



si quelqu'un peut m'expliquer
A voir également:

3 réponses

Utilisateur anonyme
5 avril 2013 à 15:08
Bonjour

If input mois >12 or <1 then

Cette condition est incorrecte, il fallait écrire
If input mois >12 or mois <1 then


De plus, je vois que tu n'imbrique pas correctement les structures : on trouve le Loop avant le End If... Il y a beaucoup de chose à revoir
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
Modifié par antoine9298 le 5/04/2013 à 15:37
je suis débutant... mais si j'ai mis le loop avant le end if c'était pour revenir au début que si le format de réponse est incorrect (peut être que c'est une erreur...)
je l'ai corrigé en suppriment le loop et en le remplacent par exit
maintenant le début donne ça:

annee = inputbox("en quelle annee est tu ne(e)")

mois = inputbox("en quel mois est tu ne(e)")

If input mois >12 or mois <1 then

msgbox "retapez la reponse en nombre."
exit
elself mois <13 and >0
else
End If

ET mon bug persiste ?! en m'indiquant un Then attendu ligne5(celle du exit) caractère 10? IL N'Y A PAS DE CARACTÈRE 10 SUR CETTE LIGNE! et si le vrai bug c'était cette fenêtre qui tourne en boucle?
0
Utilisateur anonyme
5 avril 2013 à 15:39
If input mois >12 or mois <1 then
Je n'avais pas remarqué... que fait ce mot "input" ici ?
ET Quant au caractère 10 , ça veut simplement dire le 10e caractère de la ligne.
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
Modifié par antoine9298 le 5/04/2013 à 15:46
j'avait compris mais il n'y a pas de 10eme caractère sur cette ligne :-/
et quand au mot input j'aivait pensé si la reponse mois est...
tienen enlevant input le message d'erreur disparaît (ouf)...
0
Utilisateur anonyme
5 avril 2013 à 15:45
Si.
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
Modifié par antoine9298 le 5/04/2013 à 16:01
on dirait que les messages d'erreur que je reçoit ne comptent pas les lignes comme moi,le bloc note(en bidouillant dans affichage y'a une option qui affiche la ligne et le caractere.) ET vbsedit qui a le meme systeme,du coup les erreur sont plus dur a corriger...
je commence a plus trop savoir si je doit me fier aux lignes des message d'erreur...
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
Modifié par antoine9298 le 5/04/2013 à 16:30
Merci quand meme...(c'est reglé) maintenant j'ai plus qu'a corriger les autres erreurs...(aie,aie,aie)
0