GNT sans publicité, site mobile, fonctionnalitées exclusives...

Erreur d'exécution '6' : Dépassement de capacité

Le
Turgeon
J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le fait
que le résultat est compris dans les valeurs limites. La variable double a
comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles Le Bret
Le #20316241
bonsoir

le Vba (comme le vb6) n'a jamais été un langage calculant avec précision,
donc à utiliser avec discernement pour des calculs un tant soit peu
scientifiques.
un exemple : va dans la fenêtre de débogage et tape
?int(0.29*100)/100
puis exécute
!!!
bien souvent dans des tests 1 <> 1 à cause de pb de décimales trianates et
cachées
mais je n'ai pas répondu à ton problème.
est-ce que le pb est le même en single ?

Gilles Le Bret



"Turgeon" news:
J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le fait
que le résultat est compris dans les valeurs limites. La variable double a
comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.


michdenis
Le #20316231
Bonjour Turgeon,

Donne un exemple de ton code qui retourne un message d'erreur

Ceci ne provoque aucune erreur de dépassement.
'----------------------
Sub test()
Dim X As Double
X = 0.00000105
End Sub
'----------------------



"Turgeon" discussion :
J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le fait
que le résultat est compris dans les valeurs limites. La variable double a
comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.
Turgeon
Le #20317041
Voici le code original:

For n = 100 To 499
termeBx = termeBx * (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
Next n

J'ai modifié pour ceci et ça semble fonctionné:

For n = 100 To 499
essai = (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
termeBx = termeBx * essai
Next n

Je n'ai pas compris mais ça fonctionne.

Merci !
"michdenis" a écrit :

Bonjour Turgeon,

Donne un exemple de ton code qui retourne un message d'erreur

Ceci ne provoque aucune erreur de dépassement.
'----------------------
Sub test()
Dim X As Double
X = 0.00000105
End Sub
'----------------------



"Turgeon" discussion :
J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le fait
que le résultat est compris dans les valeurs limites. La variable double a
comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.



Gilles Le Bret
Le #20317201
normalement chaque variable doit être dimensionnée
n est integer mais 1.5+n n'est pas integer

envoie le code avec les lignes de dimensionnement pour comprendre ton pb
quand les variables ne sont pas dimensionnées elles sont en "variant" et de
temps en temps il y a des surprises dans les lignes de calcul

Gilles Le Bret




"Turgeon" news:
Voici le code original:

For n = 100 To 499
termeBx = termeBx * (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
Next n

J'ai modifié pour ceci et ça semble fonctionné:

For n = 100 To 499
essai = (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
termeBx = termeBx * essai
Next n

Je n'ai pas compris mais ça fonctionne.

Merci !
"michdenis" a écrit :

Bonjour Turgeon,

Donne un exemple de ton code qui retourne un message d'erreur

Ceci ne provoque aucune erreur de dépassement.
'----------------------
Sub test()
Dim X As Double
X = 0.00000105
End Sub
'----------------------



"Turgeon" groupe de
discussion :
J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le
fait
que le résultat est compris dans les valeurs limites. La variable double
a
comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.





Turgeon
Le #20317381
Bonjour Gilles,

J'utilise la commande

option explicit

alors je dois obligatoirement déclaré mes variables. Je peux te conmfirmer
que "n" a été déclaré comme Integer. Merci pour l'attention que tu portes à
mon problème. Je suis d'accord avec toi : Excel n'est pas fait pour des
calculs scientifique. Il n'y a pas de nombre complexe.

"Gilles Le Bret" a écrit :

normalement chaque variable doit être dimensionnée
n est integer mais 1.5+n n'est pas integer

envoie le code avec les lignes de dimensionnement pour comprendre ton pb
quand les variables ne sont pas dimensionnées elles sont en "variant" et de
temps en temps il y a des surprises dans les lignes de calcul

Gilles Le Bret




"Turgeon" news:
> Voici le code original:
>
> For n = 100 To 499
> termeBx = termeBx * (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
> Next n
>
> J'ai modifié pour ceci et ça semble fonctionné:
>
> For n = 100 To 499
> essai = (1.5 + n) * (0.5 + n) * zz / (n*(n+1))
> termeBx = termeBx * essai
> Next n
>
> Je n'ai pas compris mais ça fonctionne.
>
> Merci !
> "michdenis" a écrit :
>
>> Bonjour Turgeon,
>>
>> Donne un exemple de ton code qui retourne un message d'erreur
>>
>> Ceci ne provoque aucune erreur de dépassement.
>> '----------------------
>> Sub test()
>> Dim X As Double
>> X = 0.00000105
>> End Sub
>> '----------------------
>>
>>
>>
>> "Turgeon" >> groupe de
>> discussion :
>> J'ai déclaré une variable double et j'ai ce messge d'erreur malgré le
>> fait
>> que le résultat est compris dans les valeurs limites. La variable double
>> a
>> comme valeur 1.05e-6. Il n'y a pas de dépassement de capacité.
>>





Publicité
Suivre les réponses
Poster une réponse
Anonyme