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:

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
Merci d'avance pour votre aide