Hello Tout le monde,
J'ai acheté un livre qui traite des applications financieres sous VBA. Tout allait bien jusqu'à la creation d'un pricer via une userform.
Après avoir crée une liste modifiable pour le N° de jour et de mois, l'année étant une toupie. Je cherchais a coder le clacul de la distance en fractions d'années séparant la date d'aujourd'hui de la date d'échéance saisie par l'utilisateur dans la userform.
J'utilise alors la formule (fausse) donnée par le bouqin :
Public Function Maturité()
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
Maturité = (CDate(DateTexte) - Date) / 365
End Function
Après un premier check, j'ai rajouté :
Public Function Maturité()
DateTexte = CStr(UserForm.Jour.Value) & "/" & UserForm.Mois.Value & "/" & CStr(UserForm.Contenu_Année.Value)
Maturité = (CDate(DateTexte) - Date) / 365
End Function
Lorsque j'appuie sur le bouton de mon pricer en utilisant le code suivant :
Private Sub Pricer1_Click()
If TypeCall.Value = True Then
TypeOption = "Call"
Else
TypeOption = "Put"
End If
S = Val(Cours.Value)
K = Val(Strike.Value)
r = Val(Rf.Value)
sigma = Val(Volat.Value)
Prix1.Value = Round(Pricers.BS_STD(TypeOption, S, K, r, sigma, Maturité()), 4)
End Sub
Un message du Débogage me marque que la ligne Maturité = (CDate(DateTexte) - Date) / 365 a un probleme,plus précisément qu'il y a une "incompatibilité de type" au niveau de CDate.
Etant un debutant, je ne vois pas du tout comment je peux arranger ca.Aureiez vous quelques idées?
Merci beaucoup
Jeremy
J'ai acheté un livre qui traite des applications financieres sous VBA. Tout allait bien jusqu'à la creation d'un pricer via une userform.
Après avoir crée une liste modifiable pour le N° de jour et de mois, l'année étant une toupie. Je cherchais a coder le clacul de la distance en fractions d'années séparant la date d'aujourd'hui de la date d'échéance saisie par l'utilisateur dans la userform.
J'utilise alors la formule (fausse) donnée par le bouqin :
Public Function Maturité()
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
Maturité = (CDate(DateTexte) - Date) / 365
End Function
Après un premier check, j'ai rajouté :
Public Function Maturité()
DateTexte = CStr(UserForm.Jour.Value) & "/" & UserForm.Mois.Value & "/" & CStr(UserForm.Contenu_Année.Value)
Maturité = (CDate(DateTexte) - Date) / 365
End Function
Lorsque j'appuie sur le bouton de mon pricer en utilisant le code suivant :
Private Sub Pricer1_Click()
If TypeCall.Value = True Then
TypeOption = "Call"
Else
TypeOption = "Put"
End If
S = Val(Cours.Value)
K = Val(Strike.Value)
r = Val(Rf.Value)
sigma = Val(Volat.Value)
Prix1.Value = Round(Pricers.BS_STD(TypeOption, S, K, r, sigma, Maturité()), 4)
End Sub
Un message du Débogage me marque que la ligne Maturité = (CDate(DateTexte) - Date) / 365 a un probleme,plus précisément qu'il y a une "incompatibilité de type" au niveau de CDate.
Etant un debutant, je ne vois pas du tout comment je peux arranger ca.Aureiez vous quelques idées?
Merci beaucoup
Jeremy