Convertir une fraction obtenue en Inputbox en une variable numérique - VB/VBA/VBS - Programmation
Marsh Posté le 18-01-2008 à 12:10:23
C'est difficile à dire sans voir une seule ligne de code.
Cependant, c'est peut-être une conversion à faire avec CDbl.
Marsh Posté le 18-01-2008 à 12:17:56
Option Explicit
Public S, K, vol, r, T, rép, N, Nin As String, q As Byte
Dim d1 As String, d2 As Double
Private Sub CommandButton1_Click()
'Déclaration des variables
rép = ComboBox1.Value
'Formule pour un call classique
UserForm1.Hide 'cache l'userform
S = InputBox("Quel est le cours spot?" )
If S = "" Then Exit Sub ' si on clique sur le bouton annuler,la macro s'arrette
K = InputBox("Quel est le strike de l'option?" )
If K = "" Then Exit Sub
T = InputBox("Quelle est la durée de vie de l'option (en années)?" )
If T = "" Then Exit Sub
vol = InputBox("Quelle est la volatilité de l'option?" )
If vol = "" Then Exit Sub
r = InputBox("Quel est la valeur du taux sans risque?" )
If r = "" Then Exit Sub
q = 0
If rép = "call européen" Or "put européen" Then
d1 = (Log(S / K) + (r - q + vol * vol * 0.5) * T) / (vol * Sqr(T))
d2 = (Log(S / K) + (r - q - vol * vol * 0.5) * T) / (vol * Sqr(T))
..............
End sub
Lorsque par exemple je veux rentrer 5 mois pour la valeur de T, je tape 5/12
mais lorsque je calcule mon d1, il ne le comprend pas...
J'ai essayé avec Cdbl mais cela ne marche pas..
Marsh Posté le 18-01-2008 à 12:19:56
c'est à dire ? dans ta textbox t'as "1/4" par exemple ?
je doute qu'un CDbl permette de résoudre le problème.
par contre, tu peux tenter de faire ça (mais c'est crade) :
Code :
|
Marsh Posté le 20-01-2008 à 19:21:15
La fonction evaluate serait pour moi plus efficace
Code :
|
Marsh Posté le 20-01-2008 à 23:01:33
Effectivement en VBA.
Ne pas oublier le "on error goto 0" après le "end if"
Marsh Posté le 20-01-2008 à 23:13:59
Exact, c'est vrai que je suis un peu "monomaniaque" du VBA (Excel qui plus est)...
Je ne me suis pas plus intéressé que ça au contexte il est vrai...
Désolé
Marsh Posté le 21-01-2008 à 09:46:17
Je préciserais même en VBA pour Excel (qui n'est pas la seule syntaxe VBA).
Sous Word je ne connais pas de fonction d'évaluation et sous Access, elle s'appelle .Eval au lieu de .Evaluate
Je n'ai pas cherché sous Outlook, FrontPage, PowerPoint, Visio, etc.
Les joies des produits Microsoft
Marsh Posté le 18-01-2008 à 11:59:24
Bonjour,
Grace à une inputbox, j'obtiens une fraction au format string
Mais lorsque je veux faire des calculs sur cette variable, ceci est impossible
J'ai essayé en la déclarant en variant mais cela ne marche pas.
Comment puis-je faire? merci