Macro aide pour coder une moyenne glissante.

cs_vadius Messages postés 1 Date d'inscription samedi 11 septembre 2010 Statut Membre Dernière intervention 11 septembre 2010 - 11 sept. 2010 à 07:52
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 11 sept. 2010 à 10:37
Bonjour a tous

Je débute en VBA et je bloque sur la façon de calculer une moyenne glissante à X jours.

J'ai deux colonnes, colonne A les dates, colonne B les valeurs d'un titre. Je voudrais créer une macro qui va me calculer puis m'écrire en colonne la moyenne glissante à X jours des rentabilités du titre.

L'utilisateur rentre dans une cellule le nombre de jours constituant la période glissante dont il veut calculer le rendement pour chaque jour.

Ex :: J'ai 6 mois de données en Janvier a fin Juin. Je veux calculer la moyenne glissante des rendements a 15jours.

Premier Rendement a 15 jours sera en date du 15 Janvier
Rendement = Valeur en date (i+15) / valeur en date (i) avec i une variable qui parcourt toutes les dates de la colonnes A.

Dans la colonne C, la macro me donne la valeur de ce calcul, pour toutes dates du 15 janvier au 30 Juin.

L'avantage de la macro est que l'utilisateur peut changer la période de calcul.

Je ne sais pas trop par ou débuter ni comment implémenter le code.

Merci à tous pour votre aide. N'hésitez pas si vous avez de plus de précisions.

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 sept. 2010 à 10:37
Salut
As-tu tapé "moyenne" dans l'aide de Excel ?
Dans la fonction judicieusement appelée MOYENNE, le paramétrage permet spécifier autant de paramètres que tu veux ou presque (limite 30).
Cette limite n'intervient que lorsque tu désigne chaque cellule une à une, mais rien ne s'oppose à fournir un Range de cellules, genre "A1:A100".

Donc, dans ton cas, il te suffit de définir un Range à partir du nombre de cellules désignées par l'utilisateur et de le fournir à la fonction Moyenne.

Les fonctions utilisables dans les cellules peuvent être appelées depuis le code VBA avec cette syntaxe :
Application.WorksheetFunction.Average(monRange)
(Average = Moyenne en anglais)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous