GNT sans publicité, site mobile, fonctionnalitées exclusives...

[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 !
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #3074511
Bonjour Apprenti.xls,

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 !
Apprenti.xls
Le #3074471
Pffffftttttttt ...
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%
Bonjour Apprenti.xls,

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!


Publicité
Suivre les réponses
Poster une réponse
Anonyme