Récupération d'une variable classe d'une fonction dans un sub
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:
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:
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:
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 :
Citation:
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:
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.