XL 2010 Moyennes automatiques

bobafric

XLDnaute Occasionnel
Bonjour
Je voudrai faire automatiquement la moyenne des valeurs par nom et par ligne dans un tableau ou autre sur le fichier ci joint.
il y a peut- être déjà des exemples sur le forum mais je ne les ai pas trouvées.
J'espère que le fichier et les explications sont assez clairs.
Merci d'avance
 

Pièces jointes

  • Moyennes automatiques.xlsm
    10.3 KB · Affichages: 7
Solution
@bobafric,
1-Pour le futur lecteur, c'est le post de la solution qu'on met en vert, non votre propre réponse. :)
2-On peut même se passer du bouton. Dans cette PJ la mise à jour des moyennes se fait automatiquement lorsqu'on sélectionne la feuille Moyennes.

bobafric

XLDnaute Occasionnel
Merci Sylvanu pour cette réponse ultra rapide
Ce que je veux c'est que ce soit automatique sans le besoin de taper les formules pour chaque ligne. Ceci est un tableau exemple mais l'original est trop important. Peut-être en vba.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bien le bonjour tout le monde,
Ce que je veux c'est que ce soit automatique sans le besoin de taper les formules pour chaque ligne.
Un essai en PJ tout automatique quelque soit le nombre de lignes et colonnes.
Les moyennes sont calculées dans la feuille "Moyennes"
VB:
    Dim DL%, DC%, i%, L%, C%
    Application.ScreenUpdating = False
    With Sheets("Moyennes")
        DL = Range("C65500").End(xlUp).Row                  ' Dernière ligne
        DC = Cells(1, Columns.Count).End(xlToLeft).Column   ' Dernière colonne
        ' Copie liste nom en feuil2
        .Cells.Clear
        Range(Cells(1, 1), Cells(1, DC)).Copy
        .[A1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
        .Range("$A$1:$A$" & DC).RemoveDuplicates Columns:=1, Header:=xlNo
        ' Copie liste des lignes
        For i = 4 To DL
            .Cells(1, i - 2) = Cells(i, "C")
        Next i
        ' Calcul des moyennes par formules intégrées dans feuille
        DL = .Range("A65500").End(xlUp).Row                 ' Dernière ligne
        DC = .Cells(1, Columns.Count).End(xlToLeft).Column  ' Dernière colonne
        For L = 2 To DL
            For C = 2 To DC
                .Cells(L, C).FormulaLocal = "=SIERREUR(ARRONDI(MOYENNE.SI.ENS(Feuil1!$F" & C + 2 & ":$ZZ" & C + 2 & ";Feuil1!$F$1:$ZZ$1;$A" & L & ");2);"""")"
            Next C
        Next L
        ' Mise en forme
        With .Range(.Cells(1, 1), .Cells(DL, DC))
            .HorizontalAlignment = xlCenter
            .Borders.LineStyle = xlThin
        End With
        .Select
        .Range("A1").Select
    End With
End Sub
 

Pièces jointes

  • Moyennes automatiques (1).xlsm
    23 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
@bobafric,
1-Pour le futur lecteur, c'est le post de la solution qu'on met en vert, non votre propre réponse. :)
2-On peut même se passer du bouton. Dans cette PJ la mise à jour des moyennes se fait automatiquement lorsqu'on sélectionne la feuille Moyennes.
 

Pièces jointes

  • Moyennes automatiques (4).xlsm
    23.1 KB · Affichages: 4
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 997
Messages
2 104 363
Membres
109 009
dernier inscrit
BLONDINTHEONE