[vba] Calcul de la moyenne de résultats filtrés
Le
Apprenti.xls
Bonjour à tous !
Nouvelle interrogation, car j'apprends, j'apprends. Je trouve les fonctions
du vba fabuleuses par leurs possibilités, mais là je sèche, car je débute
Voici le projet : je souhaiterais renvoyer par msgbox la moyenne des données
d'une colonne en filtrant la base sur un second champ.
J'ai bien essayé tout seul, mais, pffttt, il me manque encore sérieusement
certaines notions, dirait-on
Voici ce que j'ai déjà conçu pour renvoyer une moyenne d'une plage non
filtrée, et je n'y arrive même pas :
Sub Résultat_moyen()
Dim Plage As String, Moyenne As Variant
Plage = "Situation!" & Range("Données").Address
Moyenne = WorksheetFunction.Average(Evaluate("&Plage&"))
MsgBox Moyenne
End Sub
Ensuite, je vois bien quelquechose comme la définition d'un
Selection.SpecialCells(xlCellTypeVisible).Select
ou bien avec sumprod en fonction d'une variable x ?
Si l'une ou l'un d'entre vous pouvait se pencher sur le problème et
m'apporter un début de solution, celà m'aiderait grandement.
Merci d'avance !
Nouvelle interrogation, car j'apprends, j'apprends. Je trouve les fonctions
du vba fabuleuses par leurs possibilités, mais là je sèche, car je débute
Voici le projet : je souhaiterais renvoyer par msgbox la moyenne des données
d'une colonne en filtrant la base sur un second champ.
J'ai bien essayé tout seul, mais, pffttt, il me manque encore sérieusement
certaines notions, dirait-on
Voici ce que j'ai déjà conçu pour renvoyer une moyenne d'une plage non
filtrée, et je n'y arrive même pas :
Sub Résultat_moyen()
Dim Plage As String, Moyenne As Variant
Plage = "Situation!" & Range("Données").Address
Moyenne = WorksheetFunction.Average(Evaluate("&Plage&"))
MsgBox Moyenne
End Sub
Ensuite, je vois bien quelquechose comme la définition d'un
Selection.SpecialCells(xlCellTypeVisible).Select
ou bien avec sumprod en fonction d'une variable x ?
Si l'une ou l'un d'entre vous pouvait se pencher sur le problème et
m'apporter un début de solution, celà m'aiderait grandement.
Merci d'avance !

Poser une question


En supposant que ta plage de cellules ait déjà reçu le filtre que tu veux,
Remplace la lettre "B" par la lettre de ta colonne sur laquelle tu veux
effectuer la moyenne.
Ceci suppose que ta plage a déjà reçu le flitre désiré.
MsgBox Application.Subtotal(1, Range("B" & _
Range("_FilterDataBase").Row).SpecialCells(xlCellTypeVisible))
Salutations!
"Apprenti.xls" Bonjour à tous !
Nouvelle interrogation, car j'apprends, j'apprends. Je trouve les fonctions
du vba fabuleuses par leurs possibilités, mais là je sèche, car je débute
...
Voici le projet : je souhaiterais renvoyer par msgbox la moyenne des données
d'une colonne en filtrant la base sur un second champ.
J'ai bien essayé tout seul, mais, pffttt, il me manque encore sérieusement
certaines notions, dirait-on ...
Voici ce que j'ai déjà conçu pour renvoyer une moyenne d'une plage non
filtrée, et je n'y arrive même pas :
Sub Résultat_moyen()
Dim Plage As String, Moyenne As Variant
Plage = "Situation!" & Range("Données").Address
Moyenne = WorksheetFunction.Average(Evaluate("&Plage&"))
MsgBox Moyenne
End Sub
Ensuite, je vois bien quelquechose comme la définition d'un
Selection.SpecialCells(xlCellTypeVisible).Select
ou bien avec sumprod en fonction d'une variable x ?
Si l'une ou l'un d'entre vous pouvait se pencher sur le problème et
m'apporter un début de solution, celà m'aiderait grandement.
Merci d'avance !
Décidément, il va falloir sérieusement que j'étudie ...
En une ligne, tu me trouves la solution.
Merci Denis ! Merci, une fois encore ...
J'apprends, j'apprends ...
À bientôt !
"michdenis" eSN%