VBA Excel erreur 6 dépassement de capacité [Fermé]

Signaler
-
 mat -
Bonjour,
j'ai écris un code pour faire une boucle d'itération sur des valeurs de poids et lorsque je le lance, il me met: erreur 6 dépassement de capacité à la ligne 29 sur ma première boucle While.
j'ai essayé de passer i en integer ou en Long mais ça n'a rien changé.
ci dessous le code

Merci d'avance pour votre aide !

Sub iteration()


Dim epsilon As Double
epsilon = 0.01
Dim Wtoguess As Double
Dim Wtocalc As Double
Dim Wf_Wto As Double
Dim We_Wto As Double
Dim Wc As Double
Dim Wp As Double
Dim i As Long



'initialisation
ThisWorkbook.Sheets("loops").Cells(4, 2) = ThisWorkbook.Sheets("data").Cells(12, 16)
ThisWorkbook.Sheets("loops").Cells(5, 2) = ThisWorkbook.Sheets("data").Cells(13, 16)
ThisWorkbook.Sheets("loops").Cells(6, 2) = ThisWorkbook.Sheets("data").Cells(8, 2)

Wtoguess = ThisWorkbook.Sheets("data").Cells(5, 16)

ThisWorkbook.Sheets("loops").Cells(7, 2) = Wtoguess

Wtocalc = Wtoguess * 1.2

i = 0
'On lance une premiere fois
While (((Abs((Wtoguess - Wtocalc) / Wtoguess)) > epsilon) And (i < 500))
i = i + 1
Wtoguess = Wtocalc

We_Wto = ThisWorkbook.Sheets("loops").Cells(8, 2)
Wf_Wto = ThisWorkbook.Sheets("loops").Cells(11, 2)
Wc = ThisWorkbook.Sheets("loops").Cells(9, 2)
Wp = ThisWorkbook.Sheets("loops").Cells(10, 2)


Wtocalc = Wc + Wp + We_Wto * Wtoguess + Wf_Wto * Wtoguess

ThisWorkbook.Sheets("loops").Cells(7, 2) = (9 * Wtoguess + 1 * Wtocalc) / 10



Wend

'On fige Vapp
'vapp = ThisWorkbook.Sheets("Big_loop").Cells(32, 9)
'ThisWorkbook.Sheets("Big_loop").Cells(32, 9) = vapp

'On converge sur le point de design
c = 0
While c < 10
'On met a jour en fonction du graph
ThisWorkbook.Sheets("loops").Cells(4, 2) = (ThisWorkbook.Sheets("master equation").Cells(10, 18)) * 0.45 * 9.81 / (0.3048 ^ 2)
ThisWorkbook.Sheets("loops").Cells(5, 2) = (ThisWorkbook.Sheets("master equation").Cells(11, 18))
'On utilise ces nouvelles valeurs pour mettre à jour le point
Wtoguess = ThisWorkbook.Sheets("data").Cells(5, 16)
ThisWorkbook.Sheets("loops").Cells(7, 2) = Wtoguess
'Wtocalc = 550000

While (((Abs((Wtoguess - Wtocalc) / Wtoguess)) > epsilon) And (i < 500))
i = i + 1
Wtoguess = Wtocalc

We_Wto = ThisWorkbook.Sheets("Bloops").Cells(8, 2)






Wf_Wto = ThisWorkbook.Sheets("loops").Cells(11, 2)
Wc = ThisWorkbook.Sheets("loops").Cells(9, 2)
Wp = ThisWorkbook.Sheets("loops").Cells(10, 2)

Wtocalc = Wc + Wp + We_Wto * Wtoguess + Wf_Wto * Wtoguess

ThisWorkbook.Sheets("loops").Cells(7, 2) = (4 * Wtoguess + 1 * Wtocalc) / 5
Wend
'On incrémente
c = c + 1

Wend

'On calcule les performances au décollage
'ThisWorkbook.Sheets("Big_loop").Cells(24, 9) = ThisWorkbook.Sheets("Data").Cells(8, 3) * Sqr(ThisWorkbook.Sheets("Small_loop").Cells(6, 6) * 2 / (ThisWorkbook.Sheets("Big_loop").Cells(8, 8) * ThisWorkbook.Sheets("Big_loop").Cells(23, 9)))
ThisWorkbook.Sheets("loops").Cells(6, 2) = ThisWorkbook.Sheets("data").Cells(8, 2)



While ThisWorkbook.Sheets("take off").Cells(22, 18) * ThisWorkbook.Sheets("conversion").Cells(3, 3) < ThisWorkbook.Sheets("landing").Cells(21, 17)

ThisWorkbook.Sheets("loop").Cells(6, 2) = ThisWorkbook.Sheets("loops").Cells(6, 2) * 1.01


Wend



While ThisWorkbook.Sheets("take off").Cells(33, 18) * ThisWorkbook.Sheets("conversion").Cells(3, 3) < ThisWorkbook.Sheets("landing").Cells(21, 17)

ThisWorkbook.Sheets("loop").Cells(6, 2) = ThisWorkbook.Sheets("loops").Cells(6, 2) * 1.01

Wend
End Sub



1 réponse

Messages postés
15831
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 juillet 2021
1 512
Bonjour,

quand vous avez l'erreur, click sur debugage et placer le curseur souris sur les variables de la ligne ou il y a l'erreur pour voir leurs contenus. Ils y a peut-etre des 0

A+
oui en effet il n'arrive pas à aller chercher les valeurs dans ma feuille excel...