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

Fermé
Nico_TchekRep - 5 avril 2011 à 10:45
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 avril 2011 à 11:33
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 avril 2011 à 11:33
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