VBA: Dépassement de capacité  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

VBA: Dépassement de capacité

Messagepar Monsieur_K » 28 Mars 2011, 13:09

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:

Code: Tout sélectionner
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!
Dernière édition par Monsieur_K le 28 Mars 2011, 13:24, édité 1 fois.
Monsieur_K
Utilisateur occasionnel
 
Messages: 10
Inscription: 22 Mars 2011, 17:42
Version Excel: 2003FR

Re: VBA: Dépassement de capacité

Messagepar Dan » 28 Mars 2011, 13:16

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
@+ Dan ;)
Avatar de l’utilisateur
Dan
Modérateur
 
Messages: 2398
Inscription: 27 Avr 2007, 15:31
Localisation: Liège - Belgique
Version Excel: 2010, 2003, 2000, Mac 2004

Re: VBA: Dépassement de capacité

Messagepar Monsieur_K » 28 Mars 2011, 13:24

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).
Monsieur_K
Utilisateur occasionnel
 
Messages: 10
Inscription: 22 Mars 2011, 17:42
Version Excel: 2003FR

Re: VBA: Dépassement de capacité

Messagepar Dan » 28 Mars 2011, 13:25

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

Code: Tout sélectionner
K = (2 * A * WorksheetFunction.Pi * B ^ 2) / (3 * C + 1)

A te relire
@+ Dan ;)
Avatar de l’utilisateur
Dan
Modérateur
 
Messages: 2398
Inscription: 27 Avr 2007, 15:31
Localisation: Liège - Belgique
Version Excel: 2010, 2003, 2000, Mac 2004

Re: VBA: Dépassement de capacité

Messagepar Monsieur_K » 28 Mars 2011, 13:41

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!
Monsieur_K
Utilisateur occasionnel
 
Messages: 10
Inscription: 22 Mars 2011, 17:42
Version Excel: 2003FR

Re: VBA: Dépassement de capacité

Messagepar Dan » 28 Mars 2011, 13:45

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 :
Code: Tout sélectionner
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

Code: Tout sélectionner
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
@+ Dan ;)
Avatar de l’utilisateur
Dan
Modérateur
 
Messages: 2398
Inscription: 27 Avr 2007, 15:31
Localisation: Liège - Belgique
Version Excel: 2010, 2003, 2000, Mac 2004

Re: VBA: Dépassement de capacité

Messagepar Monsieur_K » 28 Mars 2011, 13:53

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!
Monsieur_K
Utilisateur occasionnel
 
Messages: 10
Inscription: 22 Mars 2011, 17:42
Version Excel: 2003FR

Re: VBA: Dépassement de capacité  Sujet résolu

Messagepar Dan » 28 Mars 2011, 14:10

re

Ok mais --> :btres:

A bientôt
@+ Dan ;)
Avatar de l’utilisateur
Dan
Modérateur
 
Messages: 2398
Inscription: 27 Avr 2007, 15:31
Localisation: Liège - Belgique
Version Excel: 2010, 2003, 2000, Mac 2004


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], CB60, galopin01, Google [Bot], Google Adsense [Bot] et 39 invités