Bonjour tout le monde,
J'essai de développer une fonction VBA qui fait appel a des vecteurs dans Excel, et qui me renverrai un vecteur. Mais mon code ne marche pas. Pouvez m'aider à debuger ce code:
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Reaction_Bolt_kN(N_Bolt As Integer, Theta_0_deg As Double, Theta_deg As Double, Bolt_Circle_Diameter_m As Double, Mx_kNm As Double, My_kNm As Double) As Double Dim X As Double Dim Y As Double Dim Pi As Double Dim XX As Double Dim YY As Double Dim Rj As Double X = 0 Y = 0 Pi = Application.Pi() XX = 0 YY = 0 Rj = 0 Reaction_Bolt_kN = 0 For i = 0 To (N_Bolt - 1) X = Bolt_Circle_Diameter_m / 2 * Cos((Theta_0_deg + Theta_deg * i) / 180 * Pi) Y = Bolt_Circle_Diameter_m / 2 * Sin((Theta_0_deg + Theta_deg * i) / 180 * Pi) XX = XX + X * X YY = YY + Y * Y Next i For j = 0 To (N_Bolt - 2) X = Bolt_Circle_Diameter_m / 2 * Cos((Theta_0_deg + Theta_deg * j) / 180 * Pi) Y = Bolt_Circle_Diameter_m / 2 * Sin((Theta_0_deg + Theta_deg * j) / 180 * Pi) Rj = -My_kNm * X / XX + Mx_kNm * Y / YY If (-Abs(Rj) < Reaction_Bolt_kN < Abs(Rj)) Then Reaction_Bolt_kN = Abs(Rj) End If Next j End Function Function Max_Reaction_Bolt_kN(N_Bolt As Integer, Theta_0_deg As Double, Theta_deg As Double, Bolt_Circle_Diameter_m As Double, LC, Mx_kNm As Double, My_kNm As Double) X = UBound(LC) Y = UBound(Mx_kNm) Z = UBound(My_kNm) If ((X <> Y) Or (X <> Z)) Then Max_Reaction_kN(1) = "Error" Max_Reaction_kN(2) = "Error" Max_Reaction_kN(3) = "Error" Max_Reaction_kN(4) = "Error" Else For i = 1 To X R = Reaction_Bolt_kN(N_Bolt, Theta_0_deg, Theta_deg, Bolt_Circle_Diameter_m, Mx_kNm(i), My_kNm(i)) If Max_Reaction_kN(4) < R Then Max_Reaction_kN(1) = LC(i) Max_Reaction_kN(2) = Mx_kN(i) Max_Reaction_kN(3) = My_kN(i) Max_Reaction_kN(4) = R End If Next End If End Function






Répondre avec citation




Partager