Excel : moyenne sur les 3 précédents mois.

Nico_TchekRep -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je coince !
Je dois réaliser une macro pour remplir une colonne de tableau me donnant la moyenne des donnees sur les 3 precedents mois a partir de la date actuelle.

A gauche, en colonne, la liste des produits et de leur caracteristiques.
Au milieu, 12 colonnes pour les mois avec les donnees sur lesquelles on doit moyenner.
A droite, normalement ma moyenne.

J'ai bidouillé ca :

Sub avera()

Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim f As Integer
Dim g As Integer
Dim h As Integer
Dim i As Integer

a = Range("AB13").Value                                                     'on prend la valeur du mois courant
Range("E9:P9").Select                                                       'on selectionne la plage qui contient la liste de mois

    Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate                     'on cherche le mois courant dans la plage
        
b = ActiveCell.Column                                                       'on recupere la colonne en question
c = b - 1                                                                   'on prend les 3 colonnes precedentes pour faire la moyenne
d = b - 2                                                                   'on prend les 3 colonnes precedentes pour faire la moyenne
e = b - 3                                                                   'on prend les 3 colonnes precedentes pour faire la moyenne
     For i = 10 To 65                                                       'on boucle sur toute la liste
     f = Cells(c, i).Value                                                  'on prend la valeur de la cellule m-1
     g = Cells(d, i).Value                                                  'on prend la valeur de la cellule m-2
     h = Cells(e, i).Value                                                  'on prend la valeur de la cellule m-3
     ave = (f + g + h) / 3                                                  'on fait la moyenne
     MsgBox (ave)
     Next
     
End Sub


Ca fonctionne plutot pas mal, je trouve le mois, la colonne ... mais ca bug au moment de récupérer la valeur dans les cellules.

Quelqu'un aurait une idée ?

D'avance merci !
A voir également:

1 réponse

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,
Lire un code est particulièrement fastidieux alors

mettre un extrait du classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse

tu auras ainsi plus de chances de réponses valables
0