VBA: Dépassement de capacité

Salut,

J'ai un souci avec une erreur bien connue "Dépassement de capacitié - 6" ! En fait j'ai plusieurs boucles imbriquées les unes dans les autres, un peu comme ça:

For A = 1 To 5 Step 1

                  For B = 1 To 20 Step 1

                       For C = 0.055 To 0.09 Step 0.001

                           For D = 0.0005 To 0.5 Step 0.0001
              K= (2*A*Pi*b^2)/(3C+1)

Donc au niveau du K il semble qu'il y ait un problème de place, or j'ai bien déclaré K, C et D en tant que "Double" , A et B en tant qu' "Integer " ...J'ai lu pas mal de choses sur le problème, certains proposent de mettre des & lorsqu'il s'agit de nombres..mais lorsque l'on a des variables...je ne vois pas.

Merci bien et désolé pour le code approximatif!

Bonjour,

Sans voir le code complet ou le fichier ...

Essaie ceci plutôt --> K = (2 * A * Pi * b ^ 2) / (3 * C + 1)

Si ok clique sur le v vert pour cloturer le fil.

Amicalement

Oui c'est bien là tout mon problème, j'aimerais ne pas divulguer le code en public, or, pour m'aider il le faudrait!

Mais en fin de compte, le problème n'est pas syntaxique ici, j'ai bien écrit l'expression avec des * là où il faut (je corrige mon poste).

Re,

A titre d'essai uniquement, déclare tes variables en VARIANT

Amicalement

Edit Dan : au fait je vois un truc à vérifier. La fonction PI n'existe pas en VBA. Essaie en modifiant ta formule comme ceci

K = (2 * A * WorksheetFunction.Pi * B ^ 2) / (3 * C + 1)

A te relire

Si je mets tout en Variant, ça fonctionne effectivement, du moins le calcul car le résultat est nul, et il ne le devrait pas! Mais c'est un autre problème, le test est donc concluant pour Variant...mais ça ne m'explique pas vraiment pourquoi? Tu pourrais m'éclairer stp ?

Sinon J'ai créé moi même la fonction Pi=4*Atn(1) ...vraiment désolé de pas avoir été plus précis!

Re,

Tu as surement un problème de variables mal déclarées ou ton code pose un souci que je ne vois pas puisqu'incomplet ici :

En me basant sur ton code, essaie comme ceci :

Dim A As Byte, B As Byte
Dim C As Double, D As Double, k As Double

N'oublie pas ta formule avec Pi aussi. Vois l'EDIT dans mon message précédent.

Amicalement

Edit : Pour ton info j'ai testé avec ce code

Sub test()
For A = 1 To 5 Step 1

For B = 1 To 20 Step 1

For C = 0.055 To 0.09 Step 0.001

For D = 0.0005 To 0.5 Step 0.0001

Next
Next
Next
Next
k = (2 * A * WorksheetFunction.Pi * B ^ 2) / (3 * C + 1)
Range("A1") = k
End Sub

Bon, je suis ridicule, en fait j'avais une valeur qui était de 175e9 ..que j'avais mis en long...il fallait mettre currency en fait! C'était pas assez grand sinon...désolé pour tout ce rafût et à bientôt, je n'ai pas terminé de poser des questions! Gros débutant que je suis..

Merci Dan!

Ps: Pour Pi regarde mon précédent message j'ai utilisé un subterfuge!

re

Ok mais -->

A bientôt

Rechercher des sujets similaires à "vba depassement capacite"