Aide avec les filtres et bdmoyenne - VB/VBA/VBS - Programmation
Marsh Posté le 31-03-2009 à 15:24:17
Bonjour
Je comprends pas trop pour quelle raison tu filtres ? c'est juste pour avoir un visuel ? Car le DAverage se calcul deja en fonction d'une plage de filtre.
En plus de cela, tu ecris le resultat de ton DAverage en J14
Ou alors il faut juste se servir du filtre. La c'est comme si tu faisais deux fois la meme chose.
Avec ton exemple je dirais :
Tu mets en J14 le resultat de ton DAverage directement dans la cellule, sans filtrer.
J14.FormulaR1C1 = "=DAVERAGE(R24C2:R65536C15,14,R16C4:R17C5)"
Fonction BDMoyenne , qui calcule la moyenne de la 14eme colone de la plage B24:O65536 en fonction des filtres en D16:E17
Ou alors tu filtres, et tu mets en J14 :
J14.FormulaR1C1 = "=SUBTOTAL(101,R24C2:R65536C15)"
Fonction SOUS.TOTAL qui calcule la moyenne de la plage B24:O65536 en tenant compte du tableau préalablement filtré.(Fonction n°101, qui permet de ne pas tenir compte des valeurs masquées)
Cordialement
Marsh Posté le 31-03-2009 à 10:01:38
Bonjour,
Je travaille sur un petit programme excel pour mon boulot et je me retrouve coincé.
Le but est de faire des filtres sur une base de donnée et de calculer une moyenne selon le filtre appliqué. Mon soucis arrive lorsqu'il n'y pas de correspondance entre les critères et que le résultat du filtre est vide; si je décide de générer la moyenne alors ca bug.
voici le code VBA pour le calcul de la moyenne
If ToggleButton1.Value = True Then
p = WorksheetFunction.DAverage(Range("B24:O24", Range("B24:O24" ).End(xlDown)), Range("O24" ), Range("D16:E17" ))
Range("J14:K14" ).Value = p
Elseif togglebutton2.value.............. (ca va jusque 10 comme ca en changeant les critères)
Endif
Pour ce qui est du filtre le code est:
Range("B24:O24", Range("B24:O24" ).End(xlDown)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("D16:E17" ), Unique:=False
Merci d'avance pour votre aide
P.S: j'ai déjà essaye de faire "if iserror(la fonction qui bdmoyenne) alors msgbox