Calculer la moyenne de certaines cellules sur plusieurs feuilles
Résolu/Fermé
Enaxor18
Messages postés
23
Date d'inscription
jeudi 8 octobre 2015
Statut
Membre
Dernière intervention
4 octobre 2018
-
8 oct. 2015 à 17:49
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 - 8 oct. 2015 à 21:50
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 - 8 oct. 2015 à 21:50
A voir également:
- Moyenne.si plusieurs plages
- Comment calculer la moyenne sur excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Moyenne de plusieurs pourcentages excel ✓ - Forum Excel
- Rolland souhaite calculer le montant total des ventes de son magasin. le fichier contient, pour chaque produit, la quantité vendue et le prix unitaire. calculez le montant total des ventes. ✓ - Forum Excel
5 réponses
via55
Messages postés
14506
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
27 décembre 2024
2 738
Modifié par via55 le 8/10/2015 à 19:01
Modifié par via55 le 8/10/2015 à 19:01
Re
Formule plus courte non ou alors il faut passer par une macro en VBA et une fonction personnalisée; est ce que tu souhaites ?
En ce cas :
- mettre la feuille récap en dernier
- Copier coller la macro suivante dans un module (ALT +F11 pour ouvrir Editeur VBA puis Insertion et Module coller la macro dans la page
-Fermer Editeur
La fonction s'utilise comme toute fonction Excel à partir de son nom (est dans la liste des fonctions)
Par exemple dans la feuille Recap en A2 le nom Toto, en B2 mettre la formule
=moyfeuille(A2)
pour avoir le résultat
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Formule plus courte non ou alors il faut passer par une macro en VBA et une fonction personnalisée; est ce que tu souhaites ?
En ce cas :
- mettre la feuille récap en dernier
- Copier coller la macro suivante dans un module (ALT +F11 pour ouvrir Editeur VBA puis Insertion et Module coller la macro dans la page
-Fermer Editeur
Function moyfeuille(nom As Range) Boucle sur les feuilles jusqu'à l'avant dernière For n = 1 To Sheets.Count - 1 ' SOMME SI des notes en col G si nom en A a = Application.WorksheetFunction.SumIfs(Sheets(n).Range("G:G"), Sheets(n).Range("A:A"), nom) ' NB SI du nom b = Application.WorksheetFunction.CountIf(Sheets(n).Range("A:A"), nom) ' incrementation Total Total = Total + a 'Incrémentation nbre notes nbnotes = nbnotes + b Next ' Valeur calculée à retourner moyfeuille = Total / nbnotes End Function
La fonction s'utilise comme toute fonction Excel à partir de son nom (est dans la liste des fonctions)
Par exemple dans la feuille Recap en A2 le nom Toto, en B2 mettre la formule
=moyfeuille(A2)
pour avoir le résultat
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
8 oct. 2015 à 19:13
Super cool !
J'ai tout intégré, cependant quand j'active ma formule =moyfeuille(a2), l'appli pour les macros s'ouvre avec le message "erreur de compilation : erreur de syntaxe",
et me surligne la phrase "Boucle sur les feuilles jusqu'à l'avant dernière" en bleu et "Function moyfeuille(nom As Range)" en jaune fluo.
8 oct. 2015 à 19:30
Pour ceux ou celles qui auraient besoin de la solution :
Function moyfeuille(nom As Range)
' Boucle sur les feuilles jusqu'à l'avant dernière
For n = 1 To Sheets.Count - 1
' SOMME SI des notes en col G si nom en A
a = Application.WorksheetFunction.SumIfs(Sheets(n).Range("G:G"), Sheets(n).Range("A:A"), nom)
' NB SI du nom
b = Application.WorksheetFunction.CountIf(Sheets(n).Range("A:A"), nom)
' incrementation Total
Total = Total + a
'Incrémentation nbre notes
nbnotes = nbnotes + b
Next
' Valeur calculée à retourner
moyfeuille = Total / nbnotes
End Function
8 oct. 2015 à 19:31
Cdlmnt
8 oct. 2015 à 20:22
Merci d'avoir rectifié
Cdlmnt
Via