Dépassement de capacité

Signaler
Messages postés
5
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
4 décembre 2002
-
Messages postés
3
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
20 novembre 2008
-
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

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Remplace CInt par CLng
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
De plus, fais ceci :

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

DARK SIDIOUS
Messages postés
436
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
2
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
Messages postés
436
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
2
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
Messages postés
3
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
20 novembre 2008

remplacer clng par cdbl