Dépassement de capacité

cs_Schum11 Messages postés 5 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 4 décembre 2002 - 4 déc. 2002 à 14:47
aouiti2001 Messages postés 3 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 20 novembre 2008 - 20 nov. 2008 à 14:51
J'ai le code suivant :
hauteur = 300 * CInt(i) + 800

ou i varie de 1 à 200 doc hauteur varie de 1100 à 60800

j'ai déclaré ma variable hauteur de la manière suivante :
Dim hauteur As Long
mais j'ai toujours une erreur de dépassement de capacité.
Si quelqu'un voit mon prblème, merci d'avance!

et j'ai quand même une erreur

5 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
4 déc. 2002 à 15:28
Remplace CInt par CLng
1
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 déc. 2002 à 18:48
De plus, fais ceci :

hauteur = Val(300) * CLng(i) + 800, ce problème m'était déjà arrivé !!!

DARK SIDIOUS
0
VicoLaChips2 Messages postés 436 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 2 février 2010 2
6 déc. 2002 à 12:28
Bonjour -:)

Dans le cas ou c'est un For Next :

Dim hauteur As Long
For i = 1 To 200
hauteur = 300 * i + 800
Debug.Print hauteur
Next
'Marche très bien...
En revanche pour le reste c'est foireux !!
Comme quoi VB c'est bien pour manipuler des chaines de caractères mais pas des chiffres !!

@+, VIC

Dim hauteur As Long, i As Long
Do While i < 201
i = i + 1
hauteur = 300 * i + 800
Debug.Print hauteur
Loop
0
VicoLaChips2 Messages postés 436 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 2 février 2010 2
6 déc. 2002 à 12:50
Encore moi...
une variable de type integer est comprise entre
-32 768 et 32 767

Comme le résultat final est 60800 c'est > à la capacité de i si i est un integer.

Ce qui veut dire aussi que i qui est supposer être entre 1 et 200 prend en fait la valeur de Hauteur...

Donc si on écrit :
Dim hauteur As Long, i As Long
Do While i < 201
i = i + 1
hauteur = 300 * i + 800
Debug.Print hauteur
Loop
ça marche aussi !!
@+; VIC
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aouiti2001 Messages postés 3 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 20 novembre 2008
20 nov. 2008 à 14:51
remplacer clng par cdbl
0