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"
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 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
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
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
Lorsque j'exécute "Sub BoutonTF()" j'obtiens l'erreur suivante :
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
Le débogage pointe alors sur la ligneErreur d'exécution '438':
Propriété ou méthode non générée par cet objetJ'ai essayé différentes méthodes mais je n'ai pas réussi à résoudre mon problème seul...
Code : Sélectionner tout - Visualiser dans une fenêtre à part MDd = maxDrawDown(data())
Merci d'avance pour votre aide.







Répondre avec citation


Partager