samdd2005
Messages postés9Date d'inscriptionmardi 12 mai 2009StatutMembreDernière intervention26 mai 2009
-
25 mai 2009 à 20:56
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 2020
-
25 mai 2009 à 21:49
salaut jai un prob cand je laise l abalyse il me declare : indice en dehors de la page s il vous il y a kekun ki me ghed jai un examain c est urgent vois pouvez voir le programme :
Private Sub Command1_Click()
Dim Nrprim, h0, EBII, n, M, h, E, b, sigmaresist, Nr, a1, V, aprim1, aprim2, z, nest, dprim, x As Double
h0 = 0.38
EBII = 0.0035
n = 2
M = 9
V = 0.01
h = 0.4
E = 200000
b = 0.3
sigmaresist = 25
Nr = 1
a1 = 0.00039
Nrprim = 2
aprim1 = 0.00039
aprim2 = 0.00039
nest = 0.2
dprim = 0.02
x = 0.01
Dim salim As Boolean
Dim EAS As Long
'Dim EBI(1 To 9) As long
Dim EBI(0 To 9) As Long
Dim sigmaB(0 To 9, 0 To 9) As Long
Dim nb(0 To 9, 0 To 9) As Long
Dim MM(0 To 9, 0 To 9) As Long
Dim EBN(0 To 9, 0 To 9) As Long
Dim EASS(0 To 9) As Long
Dim sigmas(0 To 9) As Long
Dim EASprim(0 To 9) As Long
Dim sigmasprim(0 To 9) As Long
Dim Ro(0 To 9) As Long
Dim aprim(0 To 1) As Long
Dim i, j, w, y As Integer
For i = 1 To n
EBI(i) = (i * EBII) / n
salim = True
While (x <h And salim True)
'nb(i, 1) = 0
p = 0
MM(i, 1) = 0
For y = 0 To M
EBN(i, y) = EBI(i) * (x - (V * y) / x)
If EBN(i, y) > 0.002 Then
sigmaB(i, y) = 25
ElseIf EBN(i, y) <= 0 Then
sigmaB(i, y) = 0
Else
sigmaB(i, y) = ((EBN(i, y)) / 0.002) * ((2 - (EBN(i, y) / 0.002) ^ 2)) * sigmaresist
End If
For j = 0 To Nr - 1
EASS(j) = (EBI(i) * ((h0 - x - j * 0.1))) / x
var1 = EASS(0)
If EASS(j) > 0.00175 Then
sigmas(j) = 348
Else
sigmas(j) = E * EASS(j)
End If
n = a1 * sigmas(j) * 1000
Next j
'le cas de la partie sup
Dim NN As Double
NN = 0
aprim(0) = aprim1
aprim(1) = aprim2
Masup = 0
Mint = 0
For w = 0 To Nrprim - 1
EASprim(w) = EBI(i) * ((x - dprim - w * 0.1)) / x
If EASprim(w) > 0.00175 Then
sigmasprim(w) = -348
ElseIf EASprim(w) < -0.00175 Then
sigmasprim(w) = E * EASprim(w)
End If
NN = NN + aprim(w) * sigmasprim(w) * 1000
Masup = Masup + NN * (h0 - dprim - w * 0.1)
Next w
z = n + NN + nb(i, y)
If z = nest * b * h * sigmaresist Then
'MsgBox ("resultat" & N + NN + nb(i, y))
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 25 mai 2009 à 21:30
En fait je vien de trouvé ton erreur,
z = n + NN + nb(i, y)
est appelé en dehors et en desous de la boucle
For y = 0 To M
EBN(i, y) = EBI(i) * (x - (V * y) / x)
If EBN(i, y) > 0.002 Then
sigmaB(i, y) = 25
ElseIf EBN(i, y) <= 0 Then
sigmaB(i, y) = 0
Else
sigmaB(i, y) = ((EBN(i, y)) / 0.002) * ((2 - (EBN(i, y) / 0.002) ^ 2)) * sigmaresist
End If
'<<<= a ce stade la boucle est finie et le y est incrémenté de 1 donc est égal à 10
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 25 mai 2009 à 21:49
Je ne peux pas étudier ton code, je n'en connais même pas le but ! Pour moi ce ne sont que des variables qui ne veulent rien dire... Donc difficile de te dire comment coder, c'est toi qui à conçu cette application tu dois savoir débogguer ton erreur toi même.
Déja tu fais appel à la valeur de "y" or celui ci ne se trouve pas être le pointeur de ta boucle, donc c'est déja l'erreur principale.
z = n + NN + nb(i, y) ' <==== La ou tu place cette instruction la valeur de y sera toujours 10, car elle est le résulat d'une boucle :
For y = 0 To M
'Sachant que tu déclare:
M = 9
Met de l'orde dans ton code, prend une nouvelle procédure et recommence si tu te perd toi même dans ton propre code tu n'ira pas bien loin.
Aussi, rennome correctement tes variables, y, x, i... pour les bouces _nomDeVariables pour les valeurs, tu t'y retrouvera certainement mieux !