1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Function generale(tbldonnees, mtxRectangle As Variant, mtxAciersXY As Variant, mtxRecap1 As Variant)
PrécisionAlpha = 5
NbrCoupure = 5
Lignes2 = 15
Pi = Application.WorksheetFunction.Pi()
Nbrbarres = WorksheetFunction.Sum(Sheet1.Range("CM11:CM34"))
ReDim mtxgenerale(Lignes2, (180 / PrécisionAlpha + 1))
Ns = 0: Ms = 0: Nb = 0: Mb = 0: Ni = 0: Mi = 0
For i = 0 To 180 / PrécisionAlpha
alpha = i * PrécisionAlpha
mtxgenerale(0, i + 1) = alpha
For k = 1 To Lignes2
ec = (tbldonnees(13, 2) * (1 + tbldonnees(19, 2))) / 1000
est = -tbldonnees(9, 4) / 1000
ymax = mtxRecap1(3, i + 2)
yaciermin = mtxRecap1(6, i + 2)
Halpha = mtxRecap1(2, i + 2)
For m = 2 To Nbrbarres + 1
y = mtxAciersXY(m, i + 3)
d = mtxAciersXY(m, 2)
e = ((ec - est) / (ymax - yaciermin)) * (y - yaciermin) + est
If Abs(e) < (tbldonnees(9, 4) / 1000) Then
sigma1 = e * tbldonnees(8, 4)
sigma1 = tbldonnees(7, 4)
End If
Ns = Ns + (Pi * d ^ 2 / 4) * sigma1
mtxgenerale(0, 0) = "Angle"
mtxgenerale(1, 0) = "ec"
mtxgenerale(2, 0) = "est"
mtxgenerale(3, 0) = "ymax"
mtxgenerale(4, 0) = "yaciermin"
mtxgenerale(5, 0) = "sigmac"
mtxgenerale(6, 0) = "sigmast"
mtxgenerale(7, 0) = "Halpha"
mtxgenerale(8, 0) = "Ns"
mtxgenerale(9, 0) = "Ms"
mtxgenerale(10, 0) = "Nb"
mtxgenerale(11, 0) = "Mb"
mtxgenerale(1, i + 1) = ec
mtxgenerale(2, i + 1) = est
mtxgenerale(3, i + 1) = ymax
mtxgenerale(4, i + 1) = yaciermin
'mtxgenerale(5, i + 1) = sigmac
'mtxgenerale(6, i + 1) = sigmast
mtxgenerale(7, i + 1) = Halpha
mtxgenerale(8, i + 1) = Ns
'mtxgenerale(9, i + 1) = Ms
'mtxgenerale(10, i) = Nb
'mtxgenerale(11, i) = Mb
generale = mtxgenerale
Next
Next
Next
End Function |
Partager