Bonjour,
Nous rencontrons un problème dans un code VBA censé calculer un écart-type sur des données dynamiques, pour des dates n allant de 91 à 128. Chaque écart-type en n est calculé à partir d'une fenêtre glissante de 89 données "S" indexées sur i (i allant donc de 1 à 90).
La colonne D de notre feuille "Vol" comprend les données qui nous servent à calculer un rendement continu grâce à la formule:
r = log(St+1/St)
Avec S les données de la colonne D(début à la ligne 5).
Dans la colonne I nous souhaitons afficher ces rendements.
Dans la colonne H nous souhaitons afficher les écarts-types.
Cela nous donne donc le code suivant:
Function R_histo()
R_histo = Log(S1 / S)
End Function
Function Vol_histo()
Vol_histo = Application.WorksheetFunction.StDev(Range(Cells(k, l), Cells(k + 34, l)))
End Function
Sub Volhisto()
Sheets("Vol").Select
For n = 91 To 128
For i = 1 To 91
Set S = Range(Cells((n - i), 4), Cells((n - i - 90), 4))
Set S1 = Range(Cells((n - i), 4), Cells((n - i - 90), 4))
Next
Range(Cells(n - 85, 9), Cells(n - 51, 9)).Formula = R_histo(S, S1)
Set r = Range(Cells(n - 85, 9), Cells(n - 51, 9))
Range(Cells(n - 85, 8), Cells(n - 51, 8)).Formula = Vol_histo
Next
End Sub
Malheuresement, lorsque nous utilisons la macro nous rencontrons le problème suivant: "l'indice n'appartient pas à la sélection".
Si vous avez une idée quelconque, nous serons ravis d'en faire usage ! =)