moyenne mobile centrée en vba

HERBIN

XLDnaute Junior
Bonsoir
J’essaye de réaliser une petite macro pour calculer la moyenne mobile en prenant la moyenne des 4 valeurs décaler d’une ligne au début et à la fin de la colonne E
E3 =MOYENNE(B2:B5)
E4 =MOYENNE(B3:B6)
E5 = =MOYENNE(B4:B7)

Et la moyenne mobile centrée à partir des moyennes mobiles décaler de deux lignes au début et à la fin de la colonne F
F4 = =MOYENNE(E3:E4)
F5 = =MOYENNE(E4:E5)

J’essaye de transcrire ses formules en VBA mais ça ne marche pas, j’obtiens le même résultat . j’ai utilisé une boucle et je n’arrive pas é décaler d’une ligne de chaque coté, est-ce difficile à faire !

Merci pour votre aide
Bien cordialement
herbin
 

Pièces jointes

  • TABLEAU moyenneMobile.xls
    97.5 KB · Affichages: 136
  • TABLEAU moyenneMobile.xls
    97.5 KB · Affichages: 149
  • TABLEAU moyenneMobile.xls
    97.5 KB · Affichages: 184

kjin

XLDnaute Barbatruc
Re : moyenne mobile centrée en vba

Bonjour,
Ton exemple ne reflète pas le décalage que tu souhaites obtenir et si tu ne fais pas 2 boucles tes résultats seront forcément erronés
Peut-être plus simple comme ceci en adaptant les valeurs de i
Code:
Sub calCoeff()
'déclaration des variables
Dim i As Integer, n As Integer
Dim DerLig As Long
'1ere boucle de traitement
With Worksheets("Moyenne_Mobile")
    DerLig = .Range("A" & .Rows.Count).End(xlUp).Row
    For i = 3 To DerLig - 1
        .Range("E" & i) = Application.Sum(Range("B" & i - 1 & ":B" & i + 1)) / 4
    Next i
    For i = 3 To DerLig - 3
        .Range("F" & i) = Application.Sum(Range("E" & i & ":E" & i + 1)) / 2
    Next i
End With
End Sub
A+
kjin
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 756
Messages
2 091 734
Membres
105 060
dernier inscrit
DEDJAN Gaston