Fonction ayant pour argument une cellule (et pouvoir recuperer sa ligne)

lbclbc Messages postés 2 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 2 avril 2011 - 31 mars 2011 à 23:29
lbclbc Messages postés 2 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 2 avril 2011 - 2 avril 2011 à 16:21
bonjour,

j'ai créé ma petite fonction qui calcule la moyenne mobile sur 50données.

la fonction est ainsi:


Function moyennemobile50(y As Integer)

Dim g As Integer
Dim gugu As Single


g = y - 49
gugu = 0
For g = y - 49 To y
gugu = gugu + Cells(g, 1).Value
Next g

moyennemobile50 = gugu / 50

End Function


elle prend donc le 50° chiffre de la colonne A et fait la moyenne de ce chiffre et des 49 précédents.

or, si je fais glisser ma cellule, elle ne va pas de la 2° a la 51° valeur, puis de la 3° a la 52° valeur, etc. bref : elle calcule toujours la mm50 a partir du même argument : 50, qui ne "glisse" pas.

je sollicite donc votre aide, pour avoir en argument "A50", et qu'ainsi, je puisse faire glisser ma fonction....

merci,

lily

3 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
1 avril 2011 à 08:42
Bonjour,

Pour passer une cellule en paramètre il faut faire :
Function moyennemobile50(Cellule As Range) 

  Dim y As Integer
  Dim g As Integer 
  Dim gugu As Single 

  y = Cellule.Row
  g = y - 49 
  gugu = 0 
  For g = y - 49 To y 
    gugu = gugu + Cells(g, 1).Value 
  Next g 

  moyennemobile50 = gugu / 50 

End Function
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
1 avril 2011 à 08:46
Et pour l'utiliser, il faudra mettre comme formule

=moyennemobile50(A50)

De la même manière que les autres formules Excel
0
lbclbc Messages postés 2 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 2 avril 2011
2 avril 2011 à 16:21
merci d'avoir pris le temps de me repondre
0
Rejoignez-nous