Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

bobafric

XLDnaute Occasionnel
Bonjour à tous

Une seule formule à étirer à doite et en dessous
VB:
=SIERREUR(MOYENNE.SI.ENS(DECALER($B$3:$U$3;COLONNE(A1);0);$B$1:$U$1;$C16);"")
Salut Chris et bonjour à tous
Je reprends le fil après une nuit de repos lol.
Je joins un autre fichier car je n'ai pas pu adapter ta formule sur celui-ci qui est plus proche du réel car j'ai rajouté des colonnes.
 

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

chris

XLDnaute Barbatruc
Bonjour à tous

Pourtant il ne faut que quelques minutes pour analyser et comprendre la formule si on fait un petit effort...

VB:
=SIERREUR(MOYENNE.SI.ENS(DECALER($F$3:$Y$3;COLONNE(A1);0);$F$1:$Y$1;$G16);"")
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…