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 calculer une note sur 20 ✓ - Forum Bureautique
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
- Verrouiller cellules excel - Guide
5 réponses
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
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