Bonsoir à tous,

Je viens vers vous car je ne parviens pas à récupérer un objet instancié que j'ai défini dans une classe module retournées par une fonction supposée retourner ce type d'objet.

Voici le code pour y voir plus clair :

Ici nous retrouvons la partie du code contenue dans le module de classe appelé "clsMaxDrawdown"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Option Explicit
 
' Creation de la classe destinee a contenir toutes les valeurs utiles du Maximum Drawdown
 
Public perte As Currency
Public indiceMax As Integer
Public indiceMin As Integer
Dans mon module "Fonctions" je définie ma fonction "maxDrawDown" qui retourne une valeur du type "clsMaxDrawDown"
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
 
Function maxDrawDown(data() As Currency) As clsMaxDrawdown
 
   Dim min As Currency, max As Currency
   Dim i, j As Integer
 
   Dim MDd As New clsMaxDrawdown
 
   min = data(0)
   max = data(0)
   MDd.perte = 0
 
   For i = 0 To UBound(data())
 
    If data(i) > max Then
        max = data(i)
        min = max
        j = 0
    End If
 
    If data(i) < min Then
        min = data(i)
        j = j + 1
        If (min - max) < MDd.perte Then
            MDd.perte = min - max               ' On recupere la valeur du Maximum Drawdown
            MDd.indiceMin = i                       ' Ansi que la position du min
            MDd.indiceMax = i - j
        End If
    End If
 
   Next i
 
   Set maxDrawDown = MDd
 
End Function
Et enfin j'appelle cette fonction dans mon module "Main" dans le sub "BoutonTF"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Sub BoutonTF()
    Dim MDd As New clsMaxDrawdown
    Dim chemin As String
    chemin = ActiveWorkbook.Path & "/data/STF.txt"
    Call DataFileToArray(chemin, " ")
    MDd = maxDrawDown(data())
    oshTF.Cells(5, 3) = CDbl(MDd.perte)
End Sub
Lorsque j'exécute "Sub BoutonTF()" j'obtiens l'erreur suivante :
Erreur d'exécution '438':
Propriété ou méthode non générée par cet objet
Le débogage pointe alors sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MDd = maxDrawDown(data())
J'ai essayé différentes méthodes mais je n'ai pas réussi à résoudre mon problème seul...

Merci d'avance pour votre aide.