Macro calculant la moy de plusieurs feuilles
blanchehermine35
Messages postés
12
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Je vais essayer de me faire comprendre après plusieurs heures de recherche.
Je voudrais créer une macro qui mette à jour une feuille "bilan"
La feuille bilan permet de calculer la moyenne d'une cellule située sur plusieurs feuilles.
Je m'explique :
Dans la feuille bilan, dans la cellule B6, je souhaite calculer la moyenne de toutes mes cellules B6 des feuilles nommées evaluation (i). Le nombre de feuille evaluation(i) n'est pas fixe, j'en rajoute au fur et à mesure des semaines. Donc je veux que lorsqu'une nouvelle feuille est crée lorsque je clique sur la macro de mise à jour, la feuille bilan refasse le calcul
Et ainsi de suite pour la cellule B7,B8....., C6,C7...
Merci d'avance
Je vais essayer de me faire comprendre après plusieurs heures de recherche.
Je voudrais créer une macro qui mette à jour une feuille "bilan"
La feuille bilan permet de calculer la moyenne d'une cellule située sur plusieurs feuilles.
Je m'explique :
Dans la feuille bilan, dans la cellule B6, je souhaite calculer la moyenne de toutes mes cellules B6 des feuilles nommées evaluation (i). Le nombre de feuille evaluation(i) n'est pas fixe, j'en rajoute au fur et à mesure des semaines. Donc je veux que lorsqu'une nouvelle feuille est crée lorsque je clique sur la macro de mise à jour, la feuille bilan refasse le calcul
Et ainsi de suite pour la cellule B7,B8....., C6,C7...
Merci d'avance
A voir également:
- Macro calculant la moy de plusieurs feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment calculer la moyenne sur excel - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
6 réponses
Bonjour,
Si tes feuilles sont consécutives tu n'as pas besoin de macro :
=MOYENNE(Eval1:Eval1000!B6)
assure toi seulement d'insérer tes feuilles à prendre en compte, et seulement celles là, entre Eval1 et Eval1000 (qui peuvent très bien ne pas servir, la fonction moyenne ne tient pas compte des cellules vides)
eric
Si tes feuilles sont consécutives tu n'as pas besoin de macro :
=MOYENNE(Eval1:Eval1000!B6)
assure toi seulement d'insérer tes feuilles à prendre en compte, et seulement celles là, entre Eval1 et Eval1000 (qui peuvent très bien ne pas servir, la fonction moyenne ne tient pas compte des cellules vides)
eric
bonjour
un exemple attaché à un bouton (activeX) de la feuille bilan qui fait la moyenne des cellules des feuilles "evaluation" ayant la même adresse que celles de "plage"
bonne suite
bonne suite
un exemple attaché à un bouton (activeX) de la feuille bilan qui fait la moyenne des cellules des feuilles "evaluation" ayant la même adresse que celles de "plage"
Option Explicit
Const plage = "$B$6:$C$8"
Const nomF = "evaluation"
Private Sub btOK_Click()
Dim nuF As Long, nbF As Long
Dim s As Double
Dim c As Range
Dim li As Long, co As Long
For Each c In Range(plage)
li = c.Row
co = c.Column
s = 0
nbF = 0
For nuF = 1 To Sheets.Count
If InStr(1, Sheets(nuF).Name, nomF) > 0 Then
s = s + Sheets(nuF).Cells(li, co).Value
nbF = nbF + 1
End If
Next nuF
c.Value = s / nbF
Next c
bonne suite
bonne suite
exact, j'ai zappé la dernière ligne de la procedure
les deux dernière lignes
https://www.cjoint.com/?0CglxNX3N0d
bonne suite
les deux dernière lignes
Next c End Sub
https://www.cjoint.com/?0CglxNX3N0d
bonne suite
re
ça doit être possible, mais que veux tu dire exactement par "la cellule contient une valeur" : quelle cellule? de quelle feuille? le mieux est de donner un exemple
bonne suite
ça doit être possible, mais que veux tu dire exactement par "la cellule contient une valeur" : quelle cellule? de quelle feuille? le mieux est de donner un exemple
bonne suite
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re
quelque chose comme ça?
https://www.cjoint.com/?0CgqiNUBex4
bonne suite
quelque chose comme ça?
https://www.cjoint.com/?0CgqiNUBex4
bonne suite
Ah effectivement je vois que ma demande n'était pas appropriée. En fait, je veux que rien ne s'affiche si il n'y a pas de valeur dans les cellules de chaque feuille.
Par exemple si dans toutes les feuilles eval, les cellules C7 et B9 sont vides je veux que dans bilan ces cellules restent vide. Par contre ce qui est bien avec ton nouveau code c'est qu'il ne considère pas une cellule vide comme 0 dans la moyenne.
Par exemple si dans toutes les feuilles eval, les cellules C7 et B9 sont vides je veux que dans bilan ces cellules restent vide. Par contre ce qui est bien avec ton nouveau code c'est qu'il ne considère pas une cellule vide comme 0 dans la moyenne.
bonjour
une modification pour différencier les cellules vides de celles qui contiennent un 0 à prendre en compte dans le calcul de la moyenne
bonne journée
une modification pour différencier les cellules vides de celles qui contiennent un 0 à prendre en compte dans le calcul de la moyenne
Private Sub btOK_Click()
Dim nuF As Long, nbv As Long
Dim s As Double, v
Dim c As Range
Dim li As Long, co As Long
For Each c In Range(plage)
li = c.Row
co = c.Column
s = 0
nbv = 0
For nuF = 1 To Sheets.Count
If InStr(1, Sheets(nuF).Name, nomF) > 0 Then
v = Sheets(nuF).Cells(li, co).Value
If v <> "" Then
s = s + v
nbv = nbv + 1
End If
End If
Next nuF
If nbv = 0 Then
c.Value = ""
Else
c.Value = s / nbv
End If
Next c
End Sub
bonne journée
C'est plus simple qu'une macro que tu ne sais pas faire évoluer...
Tu les appelles 'début' et 'fin' et tu t'insères entre.
eric