Bizarr.....

Résolu
CYM13 Messages postés 18 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 16 octobre 2006 - 14 sept. 2006 à 19:41
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007 - 14 sept. 2006 à 20:11
Si j'écris le code suivant (en vbs):

z=InputBox("Combien de fois?")
For 1 to z
y = InputBox("Entrez le " & z & " chiffre")
x = x + y
Next
MsgBox x

Il ne calcule pas x+y , il les concaténes!!
Ca veut dire que si y=10 la 1ére fois et 20 la deuxième, x n'est pas égale à 30 mais à 1020!!!!!
Donc , dans le cadre d'un programme pour calculer la moyenne au collège,ca pause problème...
HELP ME

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
14 sept. 2006 à 19:45
Salut,

rien de bizarre, avant ton code, il faut déclarer tes variables :

Dim z As Long, y As Long

Là, ça marchera.

Si tu ne les déclares pas, tes variables seront en Variant (bouffe de la mémoire) et concatène les valeurs

@++
3
CYM13 Messages postés 18 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 16 octobre 2006
14 sept. 2006 à 19:46
C 'est vrai j'avait oublié!!MERCI!!!!




CYM13
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
14 sept. 2006 à 20:11
Salut, en VBS, on ne peut pas déclarer des variables dans le style :
dim mavariable as  ...
c'est donc forcément du variant.

Dans ce cas, coder :
x = 0
z=InputBox("Combien de fois?")
For 1 to z
y = InputBox("Entrez le " & z & " chiffre")
x = x + cint(y))
Next
MsgBox x

Reste quand même à contrôler avant si ce qui est saisi est vraiment du numérique.
0