Code vba pour le calcul de rendement - VB/VBA/VBS - Programmation
MarshPosté le 01-11-2015 à 14:21:13
Bonjour, Je dois ecrire un code en VBA qui permet de calculer les rendements annuels trimestriels et mensuels de certains indices. Je devais créer une userform et ecrire le code correspondant. Donc j'ai créer une userform avec l'indice à choisir, le mode de calcul d'un rendement (continus ou discret), et le type de rendement a calculer (annuel, trimestriel ou mensuel). Cependant, je n'arrive pas à écrire le code me permettant de calculer ces types de rendements. On avait déjà écrit un code en classe qui permettait de calculer les rendements à une date t , grâce à la formule suivante : Rdt(t)=(Cours final - Cours initial)/ Cours initial pour le mode discret et Rdt=ln (Cours final/Cours initial)
On avait donc le code suivant : avec nbD : le nombre de dates; rgC : la plage des cours; For i = 1 To nbD - 1 rgTab.Cells(i + 1, 1).Value = rgC.Cells(i + 2, 1).Value If continus = True Then rgTab.Cells(i + 1, 2).Value = rgC.Cells(i + 2, rgI.Column).Value / rgC.Cells(i + 1, rgI.Column).Value - 1 Else rgTab.Cells(i + 1, 2).Value = WorksheetFunction.Ln(rgC.Cells(i + 2, rgI.Column).Value / rgC.Cells(i + 1, rgI.Column).Value) End If Next i
Marsh Posté le 01-11-2015 à 14:21:13
Bonjour,
Je dois ecrire un code en VBA qui permet de calculer les rendements annuels trimestriels et mensuels de certains indices.
Je devais créer une userform et ecrire le code correspondant.
Donc j'ai créer une userform avec l'indice à choisir, le mode de calcul d'un rendement (continus ou discret), et le type de rendement a calculer (annuel, trimestriel ou mensuel). Cependant, je n'arrive pas à écrire le code me permettant de calculer ces types de rendements.
On avait déjà écrit un code en classe qui permettait de calculer les rendements à une date t , grâce à la formule suivante : Rdt(t)=(Cours final - Cours initial)/ Cours initial pour le mode discret et Rdt=ln (Cours final/Cours initial)
On avait donc le code suivant : avec nbD : le nombre de dates; rgC : la plage des cours;
For i = 1 To nbD - 1
rgTab.Cells(i + 1, 1).Value = rgC.Cells(i + 2, 1).Value
If continus = True Then
rgTab.Cells(i + 1, 2).Value = rgC.Cells(i + 2, rgI.Column).Value / rgC.Cells(i + 1, rgI.Column).Value - 1
Else
rgTab.Cells(i + 1, 2).Value = WorksheetFunction.Ln(rgC.Cells(i + 2, rgI.Column).Value / rgC.Cells(i + 1, rgI.Column).Value)
End If
Next i
Je vous remercie par avance