Programmation VBA, un peu d'aide SVP

Fermé
winston_smith81 - 15 déc. 2009 à 14:16
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 15 déc. 2009 à 20:32
Bonjour,

Je vous explique mon problème : pour mes cours, je dois créer un code VBA qui me permette de télécharger le cours d'une action donnée puis de calculer différents indicateurs sur ces données.

Le code qui récupère les infos sur internet est bon, quand je le lance il m'affiche une table avec les données.

Il faut maintenant que je calcule une moyenne mobile sur les différents prix. Je voudrais savoir s'il est possible d'écrire un code qui dirait à mon gentil Excel un truc comme ça :

"va à la vingtième ligne de la colonne H de la feuille2 et fais la moyenne des données de la plage E2:E21"

une fois qu'il a fait ça, il faudrait qu'il fasse la même chose à la 21e ligne de la colonne H, et cette fois faire la moyenne de la plage E3:E22 (moyenne toujours sur une plage de 20 cellules), et ainsi de suite jusqu'à la dernière ligne de ma table.

J'espère avoir été assez clair, en tous cas un grand merci d'avance à celles et ceux qui prendront du temps pour m'aider !
A voir également:

1 réponse

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
15 déc. 2009 à 20:32
Bonsoir,
Voici une possibilité :

' Selection de la dernière cellule libre en colonne H Feuille 2
ligne_libre = Sheets("Feuil2").Range("H65536").End(xlUp).Offset(1, 0).Row
ligne_libre = WorkSheetFunction.Min(20,ligne_libre)
'
' Mise en place de la formule
Sheets("Feuil2").Range("H"&ligne_libre).Formula="=SUM(Feuil1!E" & (ligne_libre-18) & ":E" & (ligne_libre+1))"

Je ne pense pas avoir fait d'erreur dans les indices de ligne.
0