Rechercher : dans
Par :

Compter cellules apres un filtre Excel

Dernière réponse le 29 oct 2008 à 16:14:38 lgabriel, le 18 jui 2008 à 15:20:56 
 Signaler ce message aux modérateurs

Bonjour,

J'ai une petite question: J'ai un tableau en Excel et je suis censé de compter sur une colonne l'apparition du mot Médecin (avoir le total). Le problème vient du fait que j'applique un filtre et si j'utilise « nb.si() », la fonction compte tout même les cellules qui sont cachées derrière le filtre que moi j'ai besoin juste les données filtrées. Merci d’avance pour votre réponse.

Gabriel

Configuration: Windows XP
Internet Explorer 6.0

1

Mabelle60, le 18 jui 2008 à 16:17:51
  • +1

Salut
La fonction sous.total répond à cette problématique

=Sous.total(3;'ton champs') : compte le nombre de valeur affichées
=Sous.total(9;'ton champs') : additionne les valeurs pour autant que ce soit des valeurs numériques


Il y'en a d'autres (de 1 à 9 je crois) mais je ne me rappelle que ces deux là. je vais les retrouver..

Répondre à Mabelle60

2

Mabelle60, le 18 jui 2008 à 16:19:41
  • +2

Re
Ah ben non, il y'en a 11 :
1 MOYENNE
2 NB
3 NBVAL
4 MAX
5 MIN
6 PRODUIT
7 ECARTYPE
8 ECARTYPEP
9 SOMME
10 VAR
11 VAR.P


A+

Répondre à Mabelle60

3

lgabriel, le 19 jui 2008 à 15:57:19

Salut,

J’ai essayé ta solution et cela ne marche pas. En effet dans ma colonne je n’ai pas des valeurs numériques mais une liste qui comprenne les appellations suivantes ; ‘médecin’, ‘ infirmiers’, ‘chef de services’. Au début dans ma feuille j’ai une base de données qui couvre tout le mois. J’applique un filtre (filtre automatique en Excel) par date. Par exemple si je sélectionne le 7 juillet dans ma colonne « interlocuteur » ils restent 2 cellules « médecin », 1 « infirmier », 3 « chef de service ». J’aurais besoin de la fonction qui retourne ces valeurs. Merci pour ta réponse antérieure.

Gabriel

Répondre à lgabriel

4

eriiic, le 19 jui 2008 à 20:13:13

Bonjour,

tu peux te faire une fonction personnalisée (dans un module, pas de le code de la feuille) qui te retourne 1 si la ligne de la cellule est visible ou 0 si elle est cachée.

Function visible(cellule As Range) As Integer
    visible = (Not cellule.EntireRow.Hidden) * -1
End Function


- Oter tous les filtres.
- Ajouter en C2: =visible(C2) que tu recopies vers le bas (cette colonne pourra être masquée si besoin)

- Avec les "médecin" en colonne B
=SOMMEPROD((B2:B10="médecin")*C2:C10) te retourne le nombre de "médecin" visibles.

Appliquer les filtres et tester

eric

Répondre à eriiic

6

lgabriel, le 21 jui 2008 à 19:23:44

Salut Eric,

Ta solution est pas mal. Par contre j’ai encore des soucis lol Moi j’applique un filtre automatique en Excel mais je passe par une macro…si j'applique un filtre manuel ta solution return la valeur souhaitée mais si je passe par macro (mon but) alors toute la colonne affiche #VALEUR ! en l’occurrence la cellule ou je fais mon calcul…t’as une idée pk ?

Gabriel

Répondre à lgabriel

5

Raymond PENTIER, le 20 jui 2008 à 00:35:33

Salut, Igabriel.
Et tout simplement, sans faire de macro, si tu appliquais la fonction SOMMEPROD évoquée par eriiic aux colonnes "Date" et "Appellation" ? C'est rapide et fiable, et ça répond exactement à ta demande. C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond

Répondre à Raymond PENTIER

7

eriiic, le 22 jui 2008 à 10:31:36

Bonjour,

Si tu fais ton filtre par macro compte directement dans la macro sans faire de fonction alors... non ?

Répondre à eriiic

8

 regan80, le 29 oct 2008 à 16:14:38

Bonjour Gabriel,
Je voudrais savoir si tu a trouvé une solution a ton probleme parce que jai le mm problem?
Merci

Répondre à regan80