Calcul de moyenne mobile

Bonjour,

Je rencontre actuellement une difficulté à écrire un code vba sur excel 2010 ;

je souhaite calculer la moyenne sur trois mois précédents des montants de vente.

Par exemple :

si on est au mois de Janvier 2014 : j'aimerais avoir la moyenne des montants des mois de Octobre 2013, Novembre 2013 et Décembre 2013

Si on est en février 2014 : la moyenne des montants de Novembre 2013 , Décembre 2013 et Janvier 2014

Si on est en mars 2014 : la moyenne des montants de Décembre 2013 , Janvier 2014 et Février 2014

Si on est en Avril 2014 : la moyenne des montants de Janvier 2014, Février 2014 et Mars 2014 etcc.... et ce jusqu'au mois en cours .

Je vous joins mon fichier source

51test.xlsx (10.09 Ko)

bonjour

si j'ai bien compris la demande voici une proposition

Fred

59sqltrysh-v001.xlsm (16.08 Ko)

Merci Fred,

ça fonctionne très bien ; mais étant vraiment nul en vba ; peux -tu m'être stp des explications sur chaque ligne de code ?

Car je souhaite l'adapter à mon besoin qui est loin d'être simple

Merci d'avance

voici

Fred

63sqltrysh-v002.xlsm (14.68 Ko)

merci c'est très clair

Fred,

Bon je me suis avancé un peu trop vite à dire que c'était résolu

N'est-il pas possible de faire des conditions sur les années , mois et catégories plutôt ?

Parce que c'est vraiment un fichier de test et il se remplira au fur et à mesure que les mois et les années vont passer ...

J'ai justement rajouter les lignes pour l'année 2013 pour bien expliquer mon exemple. Quand on passera en 2015 les lignes ne seront plus figées ...

J'espère que tu comprends ce que je veux dire...

euhhhh non pas compris, je ne vois pas pourquoi cela poserais problème si tu rajoute des lignes au fur et a mesure des années .. a partir du moment ou tu ajoute toujours dans le meme ordre Carre et Red

ou es ton deuxième fichier test ??

fred

autant pour moi, j'ai écrit ça sans le tester ; je viens de rajouter des lignes en début et en fin et ca fonctionne ;

Mais un petit truc encore ; si je veux que ces moyennes s'écrivent plutôt en ligne et non en colonne , est-ce possible ?

par exemple le long de la ligne 10

Merci encore Fred

remplacer la ligne

    Range("E" & i).FormulaLocal = "=moyenne(D" & i - 2 & ";D" & i - 4 & ";D" & i - 6 & ")"

par :

Cells(10, Cells(10, Cells.Columns.Count).End(xlToLeft).Column + 1).FormulaLocal = "=moyenne(D" & i - 2 & ";D" & i - 4 & ";D" & i - 6 & ")"

fred

Wouoh alors là je n'aurais jamais trouvé !

merci beaucoup Fred !

Rechercher des sujets similaires à "calcul moyenne mobile"