Bonjour a Tous,
Je vous poste mon code ici. Ma macro fonctionne mais mon problème est que ma macro est beaucoup trop lente ... Elle sert a effectué des calculs de moyennes pour un nombre variable de composants d'un indice boursier. Pourriez vous m'aider a simplifier mon code svp ?
Sub average()
'Calcul volatilité intraday
Var = (Cells(2, Columns.Count).End(xlToLeft).Column * 5) + 1
var2 = Sheets("Datas").Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Count
y = 0
Z = 0
For x = 1 To Var
Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(0, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"
For i = 1 To var2
Sheets("Datas").Range(Sheets("Datas").Cells(3, 5), Sheets("Datas").Cells(3, 5)).Offset(i, y).FormulaR1C1 = "=IFERROR(RC[-3]/RC[-2]-1,"""")"
Next i
y = y + 5
Next x
End Sub
Sub moy()
var1 = (Cells(2, Columns.Count).End(xlToLeft).Column * 6)
y = 0
a = 0
var2 = Sheets("Datas").Range(Cells(3, 1), Cells(3, 1).End(xlDown)).Count
' moyenne intraday
For x = 1 To var1
Sheets("Datas").Range(Sheets("Datas").Cells(5 + var2, 5), Sheets("Datas").Cells(5 + var2, 5)).Offset(0, y).FormulaR1C1 = "=IFERROR(AVERAGE(R[-" & var2 & "]C:R[-1]C),"""")"
y = y + 5
x = x + 5
Next x
' moyenne turnover
For i = 1 To var1
Sheets("Datas").Range(Sheets("Datas").Cells(6 + var2, 4), Sheets("Datas").Cells(6 + var2, 4)).Offset(0, a).FormulaR1C1 = "=IFERROR(AVERAGE(R[-" & var2 & "]C:R[-1]C),"""")"
a = a + 5
i = i + 5
Next i
End Sub
Merci de votre aide