Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compter un critère après avoir appliquer un filtre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maninwhite

XLDnaute Occasionnel
Bonjour à toutes et à tous

Je cherche à compter le nombre de fois que le mot "test" apparaît dans une colonne filtrée et à reporter ce nombre dans une cellule, mais la méthode countif ne marche pas avec des filtres car elle compte aussi dans les cellules cachées.
J'ai également essayer subtotal ou d'autres mais rien à faire et les sujets déjà présents sur le net ne m'ont pas aidés.

Je précise que je cherche à le faire en VBA et non pas en formule.

Code:
Worksheets("report").Range("A:A").AutoFilter Field:=11, Criteria1:= _
        "Logistique"
Worksheets("Statistiques FY 1314").Range("B6").Value = Application.WorksheetFunction.CountIf(Worksheets("report").Columns("E:E"), "Test")

Merci d'avance pour votre aide
 
Re : Compter un critère après avoir appliquer un filtre

Merci JB mais cette méthode m'impose de mettre une formule dans une cellule et j'aimerai que tout soit transparent donc avoir des cellules vides niveau formules.
 
Re : Compter un critère après avoir appliquer un filtre

Sur l'exemple, on obtient en O2,par VBA, le nombre de Dupont en colonne A sur une zone filtrée.

Code:
Sub essai()
  [O2] = NBSIVisibles(Range("A2:A25"), "Dupont")
End Sub

Function NBSIVisibles(champ As Range, valeur)
  Application.Volatile
  For Each c In champ
     If Not c.EntireRow.Hidden And Not c.EntireColumn.Hidden Then
          If c.Value = valeur Then t = t + 1
     End If
  Next c
  NBSIVisibles = t
End Function

JB
 

Pièces jointes

Re : Compter un critère après avoir appliquer un filtre

Nickel JB, en adaptant le code à mon fichier, cela marche parfaitement bien. Merci

Par contre quand T = 0, la cellule reste vide.

J'ai donc ajouter dans la fonction
Code:
If T = 0 Then
  NBSIVisibles = 0
  End If

Sauf que j'utilise NBSIVisibles pour plusieurs calculs donc si un est égal à 0 tous le sont.

Une idée?
 
Re : Compter un critère après avoir appliquer un filtre

Bonjour,

????

Code:
Sub essai()
  [O2] = NBSIVisibles(Range("A2:A25"), [O1])
  [P2] = NBSIVisibles(Range("A2:A25"), [P1])
  [Q2] = NBSIVisibles(Range("A2:A25"), [Q1])
End Sub

Function NBSIVisibles(champ As Range, valeur)
  Application.Volatile
  t = 0
  For Each c In champ
     If Not c.EntireRow.Hidden And Not c.EntireColumn.Hidden Then
          If c.Value = valeur Then t = t + 1
     End If
  Next c
  NBSIVisibles = t
End Function

JB
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…