VBA probleme consante requise

X-Men -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

C'est mon travail sur Amercian Option, mais quand je voudrais exécuter la function, la réponse est toujours ¨Constante Requise¨, j'ai l'examen demain, merci pour votre aide !!!


Function CallAm(S0, K, r, rd, sigma, T, n) As Double

Dim epsilon As Double
Dim u As Double, d As Double, a As Double, p As Double, q As Double


epsilon = T / n

u = Exp(sigma * Sqr(epsilon))
d = 1 / u
a = Exp(r * epsilon)
p = (Exp((r - rd) * epsilon) - d) / (u - d)
q = 1 - p

Dim i, j As Integer
Dim tr2(n, n) As Double
Dim tr3(n, n) As Double
Dim ABC As Double

tr2(0, 0) = S0
For j = 1 To n
For i = 0 To (j - 1)
tr2(i, j) = tr2(i, j - 1) * u
Next
tr2(j, j) = tr2(j - 1, j - 1) * d
Next

For i = 0 To n
tr3(i, n) = Application.WorksheetFunction.Max(tr2(i, n) - K, 0)
Next
For j = (n - 1) To 0 Step -1
For i = 0 To j
ABC = Application.WorksheetFunction.Max(tr2(i, j) - K, 0)
tr3(i, j) = (p * tr3(i, j + 1) + q * tr3(i + 1, j + 1)) / a
tr3(i, j) = Application.WorksheetFunction.Max(ABC, tr3(i, j))
Next
Next

CallAm = tr3(0, 0)

End Function

1 réponse

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonsoir

je crois que le pb vient de la déclaration de t2 et de t3

Dim tr2(n, n) As Double
Dim tr3(n, n) As Double

la dimension d'un tableau doit être une constante, or n est une variable passée à la fonction CallAm

pour contourner le pb, essaies ceci

Dim tr2
Dim tr3

redim t2 (1 to n, 1 to n)
redim t3 (1 to n, 1 to n)

bonne suite
0