Microsoft 365 Compter le nombre de cellules filtrées

team18fr

XLDnaute Junior
Bonjour à tous,
Je pensais que ce serait facile mais je n'y arrive pas, donc j'ai une colonne dans laquelle j'ai des oui, non et vide et j'aurais voulus compter les cellules contenant une oui mais seulement celles qui sont affichées après filtre. Il peut y avoir plusieurs colonnes de filtrées et je n'arrive à rien avec la fonction "sous total"
Merci d'avance pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour team18fr,

Pour ne pas se casser la tête utiliser une fonction VBA volatile :
VB:
Function Compte(plage As Range, critere)
Dim c As Range
Application.Volatile
For Each c In plage
    If Not c.Rows.Hidden Then If c = critere Then Compte = Compte + 1
Next
End Function
Filtrer sur la colonne B du fichier joint.

A+
 

Pièces jointes

  • Compte(1).xlsm
    16 KB · Affichages: 5

job75

XLDnaute Barbatruc
Ah mais je suis surpris, il n'est pas nécessaire que la fonction soit volatile, fichier (2) avec :
VB:
Function Compte(plage As Range, critere)
Dim c As Range
For Each c In plage
    If Not c.Rows.Hidden Then If c = critere Then Compte = Compte + 1
Next
End Function
La fonction est aussi recalculée quand des lignes sont masquées manuellement.

Je suis sur Excel 2019, est-ce que cela est vrai sur toutes versions ?
 

Pièces jointes

  • Compte(2).xlsm
    16 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Au départ j'étais pourtant persuadé qu'il fallait qu'elle le soit.
En fait application.volatil n'est pas utile quand les plages exprimées dans la formules sont les seules à devoir être ré évaluées.
Si par contre des paramètres interviennent qui ne sont pas dans la formules alors volatil doit être précisé pour que la fonction soit systématiquement ré évaluée.
En PJ un exemple avec votre fonction une fois non volatile, une fois volatile.
Sauf que j'ai rajouté la valeur de H1, si celui ci vaut 0 alors la fonction doit renvoyer 0, si c'est 1 il renvoie la valeur.
On voit que si on met 0 seule la fonction volatile est ré évaluée, dans le premier cas le paramètre n'est pas pris en compte. ( Lien )
 

Pièces jointes

  • Compte(2).xlsm
    15.7 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
294 442
Messages
1 938 528
Membres
188 906
dernier inscrit
fars