A voir également:
- Excel compter le nombre de cellule non vide avec filtre
- Excel compter nombre de lignes après filtre - Meilleures réponses
- Compter cellules après filtre excel - Meilleures réponses
- Compter cellules apres un filtre Excel ✓ - Forum - Excel
- Calculer le nombre de cellules saisies avec le filtre - Forum - Bureautique
- Pas prendre en compte cellules calculer vide quand filtre - Forum - Excel
- Excel compter le nombre de cellule non vide ✓ - Forum - Excel
- Comptabiliser le nombre de cellules non vides dans une colonne ✓ - Forum - Excel
10 réponses
Mabelle60
- Messages postés
- 469
- Date d'inscription
- mercredi 4 avril 2007
- Statut
- Membre
- Dernière intervention
- 21 juin 2017
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..
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..
Afficher les 8 commentaires
Signaler
Thomas
>
Kameomanu
Super merci à vous ;)
Signaler
EdhelDil
>
Kameomanu
il ne faut pas ajouter 10 mais 100 (ex: 10 : Var (INCLUE lignes masquees), 110: Var (SANS lignes masquees))
Signaler
Nicolas
Merci beaucoup
Signaler
Souris06
Merci à vous.
Signaler
12
Merci beaucoup c'est top !
Mabelle60
- Messages postés
- 469
- Date d'inscription
- mercredi 4 avril 2007
- Statut
- Membre
- Dernière intervention
- 21 juin 2017
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+
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+
lgabriel
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
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
djib1101
Une solution consiste à créer une colonne qui te dit si la ligne est masquée ou pas :
Une colonne avec comme formule =SOUS.TOTAL(3;D3), avec D3 une cellule toujours remplie (par exemple le numéro/compteur de ligne)
Et après la fonction NB.SI.ENS, filtre sur cette colonne et sur la colonne avec ton critère à compter.
Ainsi, quand tu vas appliquer les filtres, les sous.total vont être masqués et afficher '0', et ne compter que tes critères sur les lignes visibles.
Une colonne avec comme formule =SOUS.TOTAL(3;D3), avec D3 une cellule toujours remplie (par exemple le numéro/compteur de ligne)
Et après la fonction NB.SI.ENS, filtre sur cette colonne et sur la colonne avec ton critère à compter.
Ainsi, quand tu vas appliquer les filtres, les sous.total vont être masqués et afficher '0', et ne compter que tes critères sur les lignes visibles.
eriiic
- Messages postés
- 23886
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 21 février 2021
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.
- 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
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
lgabriel
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
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
number6six
- Messages postés
- 21
- Date d'inscription
- dimanche 1 décembre 2013
- Statut
- Membre
- Dernière intervention
- 20 février 2021
j'ai eu le même problème et la proposition avec =SOUS.TOTAL marche du tonnerre
il faut choisir no_fonction=3, qui correspond à NBVAL
donc si toute ma colonne est sélectionnée, j'obtiens bien 618 éléments
si je ne sélectionne que 'médecin', j'obtiens 213 éléments
ainsi de suite
=SOUS.TOTAL(3;A2:A619)
il faut choisir no_fonction=3, qui correspond à NBVAL
donc si toute ma colonne est sélectionnée, j'obtiens bien 618 éléments
si je ne sélectionne que 'médecin', j'obtiens 213 éléments
ainsi de suite
=SOUS.TOTAL(3;A2:A619)
Raymond PENTIER
- Messages postés
- 53307
- Date d'inscription
- lundi 13 août 2007
- Statut
- Contributeur
- Dernière intervention
- 22 février 2021
C'est exactement la toute première réponse, donnée depuis le 18 juillet 2008 !
https://forums.commentcamarche.net/forum/oldest/7465943-compter-cellules-apres-un-filtre-excel#1
https://forums.commentcamarche.net/forum/oldest/7465943-compter-cellules-apres-un-filtre-excel#1
Raymond PENTIER
- Messages postés
- 53307
- Date d'inscription
- lundi 13 août 2007
- Statut
- Contributeur
- Dernière intervention
- 22 février 2021
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.
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.
eriiic
- Messages postés
- 23886
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 21 février 2021
Bonjour,
Si tu fais ton filtre par macro compte directement dans la macro sans faire de fonction alors... non ?
Si tu fais ton filtre par macro compte directement dans la macro sans faire de fonction alors... non ?
regan80
Bonjour Gabriel,
Je voudrais savoir si tu a trouvé une solution a ton probleme parce que jai le mm problem?
Merci
Je voudrais savoir si tu a trouvé une solution a ton probleme parce que jai le mm problem?
Merci
babach
créer une colonne avec la formule si =SI(A1="médecin";1;0)
(A1 étant la cellule de la colonne censée éventuellement recevoir le mot médecin)
puis créer un sous total au dessus de l'étiquette de la colonne qui contient cette formule
le sous total sera donc égal au nombre de cellules comportants le mot médecin
(A1 étant la cellule de la colonne censée éventuellement recevoir le mot médecin)
puis créer un sous total au dessus de l'étiquette de la colonne qui contient cette formule
le sous total sera donc égal au nombre de cellules comportants le mot médecin
Fethi93
- Messages postés
- 17
- Date d'inscription
- mardi 28 mai 2013
- Statut
- Membre
- Dernière intervention
- 5 juin 2013
Salut,
Pour ton pb il faut que tu passes par VBA /
SUB MacroNbMedecin ()
dim nbligneas long
dim colonne as long
dim nbMedecin as long
dim nbcolonne as long
dim rg as range
colonne = Tu mets le numéro de ta colonne que tu veux filtrer
'Cherche la première ligne non vide
lignedebut= cells(1,colonne).end(xldown).row
'Compte le nb de ligne et de colonne de la plage
nbligne= cells(rows.count,colonne).end(xlup).row
nbcolonne = cells(lignedebut,columns.count).end(xltoleft).column
'récupère la plage
Set rg = Cells(lignedebut, 1).Resize(nbligne, nbcolonne)
'On filtre
rg(1, 1).Offset(-1, 0).AutoFilter Field:=colonne, Criteria1:="=MEDECIN"
'Vérifie que ca existe
On Error Resume Next
If IsError(rg.SpecialCells(xlCellTypeVisible)) Then
On Error GoTo finProcRecupGP3Bis:
MsgBox "Aucune données comporte le mot MEDECIN", vbInformation, "Données"
End '==> on sort de la fonction
End If
'pour compter tu fais
nbMedecin = rg.SpecialCells(xlCellTypeVisible).Count / nbcolonne
cells(1,1) = nbMedecin '==> colle le nb de medecin dans la cellule A1
end SUB
Pour ton pb il faut que tu passes par VBA /
SUB MacroNbMedecin ()
dim nbligneas long
dim colonne as long
dim nbMedecin as long
dim nbcolonne as long
dim rg as range
colonne = Tu mets le numéro de ta colonne que tu veux filtrer
'Cherche la première ligne non vide
lignedebut= cells(1,colonne).end(xldown).row
'Compte le nb de ligne et de colonne de la plage
nbligne= cells(rows.count,colonne).end(xlup).row
nbcolonne = cells(lignedebut,columns.count).end(xltoleft).column
'récupère la plage
Set rg = Cells(lignedebut, 1).Resize(nbligne, nbcolonne)
'On filtre
rg(1, 1).Offset(-1, 0).AutoFilter Field:=colonne, Criteria1:="=MEDECIN"
'Vérifie que ca existe
On Error Resume Next
If IsError(rg.SpecialCells(xlCellTypeVisible)) Then
On Error GoTo finProcRecupGP3Bis:
MsgBox "Aucune données comporte le mot MEDECIN", vbInformation, "Données"
End '==> on sort de la fonction
End If
'pour compter tu fais
nbMedecin = rg.SpecialCells(xlCellTypeVisible).Count / nbcolonne
cells(1,1) = nbMedecin '==> colle le nb de medecin dans la cellule A1
end SUB