Bonjour,
ci dessous c'est vraiment pas un code mais je voudrai en ecrire un qui obéit a l'algorithme ci dessous
aidez moi s'IL VOUS PLAIT
[cpp]
Sub essai()
'date d'echéance
Dim a, alpha, j, beta As Double
a = Cells(i, 8).Date 'se sont les dates d'echeances qui sont stockeés a la colonne H A partir de la ligne 5
Cells(2, 1) = aujourdhui
alpha(i) = (a - Cells(2, 1).Data) / 360 'nombre d'année entre la date d'echeance et aujourd'hui
beta(i) = Int(alpha(i)) + 1
'date du premier coupon
d(i) = Cells(i, 10).Date 'ce sont des dates qui existent en colonne J
nbredejour(i) = d(i) - Cells(2, 1) 'nombre de jours ENTRE AUJOURDHUI et la date du premier coupon
'soit la variable x qui est égale : le nombre de jours /30
Dim x As Double
Dim t1, t2 As Integer
x(i) = d(i) - Cells(2, 1)
t1(i) = Int(x) 'partie entiere de x
t2(i) = x1 + 1
j(i) = (x(i) - t1(i)) * 30 'calcul du nombre de jours compris dans x mois
' definir p1
Dim p1 As Double
p1 = x / 12
For i = 2 To beta
p(i) = p1 + (i - 1) 'les p(i) sont des valeurs en exposant dans ma formule
Next i
'calcul des T(i)
For i = 1 To beta
T(i) = (j(i) * (Sheets("Feuil2").Cells(t2(i) + 11, 7).Value + 12 * (i - 1)) + (30 - j(i)) * (Sheets("Feuil2").Cells(t1(i) + 11, 7).Value + 12 * (i - 1))) / 30
Next i
'calcul de la valeur spot c'est une somme pour i=1 à beta de tf/(1+T(i))^P(i)+100/(1+T(beta))^P(beta)
Dim Pspot As Double
Pspot = 0
'la je veux ecrire une boucle for jusqu'a la derniere ligne non vide
For i = 1 To beta
Pspot = tf / (1 + T(i)) ^ p(i) + 100 / (1 + T(i = beta)) ^ p(i = beta)
Pspot = Pspot + 1
Next i
'enfin je veux retourner Pspot dans chacune des cellules de la colonne L
'en fait Pspot est une somme que je calculer pour chaque valeur de beta et mettre le resultat de cette somme dans une cellule a la colonne L
'sachant bien que les dates d'echeances changes donc modifient les calculs
End Sub[/cpp]
merci d'avance
ci dessous c'est vraiment pas un code mais je voudrai en ecrire un qui obéit a l'algorithme ci dessous
aidez moi s'IL VOUS PLAIT
[cpp]
Sub essai()
'date d'echéance
Dim a, alpha, j, beta As Double
a = Cells(i, 8).Date 'se sont les dates d'echeances qui sont stockeés a la colonne H A partir de la ligne 5
Cells(2, 1) = aujourdhui
alpha(i) = (a - Cells(2, 1).Data) / 360 'nombre d'année entre la date d'echeance et aujourd'hui
beta(i) = Int(alpha(i)) + 1
'date du premier coupon
d(i) = Cells(i, 10).Date 'ce sont des dates qui existent en colonne J
nbredejour(i) = d(i) - Cells(2, 1) 'nombre de jours ENTRE AUJOURDHUI et la date du premier coupon
'soit la variable x qui est égale : le nombre de jours /30
Dim x As Double
Dim t1, t2 As Integer
x(i) = d(i) - Cells(2, 1)
t1(i) = Int(x) 'partie entiere de x
t2(i) = x1 + 1
j(i) = (x(i) - t1(i)) * 30 'calcul du nombre de jours compris dans x mois
' definir p1
Dim p1 As Double
p1 = x / 12
For i = 2 To beta
p(i) = p1 + (i - 1) 'les p(i) sont des valeurs en exposant dans ma formule
Next i
'calcul des T(i)
For i = 1 To beta
T(i) = (j(i) * (Sheets("Feuil2").Cells(t2(i) + 11, 7).Value + 12 * (i - 1)) + (30 - j(i)) * (Sheets("Feuil2").Cells(t1(i) + 11, 7).Value + 12 * (i - 1))) / 30
Next i
'calcul de la valeur spot c'est une somme pour i=1 à beta de tf/(1+T(i))^P(i)+100/(1+T(beta))^P(beta)
Dim Pspot As Double
Pspot = 0
'la je veux ecrire une boucle for jusqu'a la derniere ligne non vide
For i = 1 To beta
Pspot = tf / (1 + T(i)) ^ p(i) + 100 / (1 + T(i = beta)) ^ p(i = beta)
Pspot = Pspot + 1
Next i
'enfin je veux retourner Pspot dans chacune des cellules de la colonne L
'en fait Pspot est une somme que je calculer pour chaque valeur de beta et mettre le resultat de cette somme dans une cellule a la colonne L
'sachant bien que les dates d'echeances changes donc modifient les calculs
End Sub[/cpp]
merci d'avance