Compter nombre cellules non vides mais pas les formules

Bonjour,

Je m'adresse à vous en dernier recours après des heures de recherches sur internet et de tests sur Excel.

Ce que je souhaite faire : Dans un tableau Excel où toutes les cellules contiennent des formules "RECHERCHEV" faisant appel à un autre fichier, je souhaite ajouter une ligne "Sous total" en entête des différentes colonnes. Elle se rafraîchira automatiquement après avoir fait un filtre sur n'importe quelle colonne, en indiquant le nombre de cellules non vides pour chaque colonne du tableau.

Exemple : Je fais un filtre sur la colonne A qui affiche 18 résultats. Mon sous total affichera 18 et mon tableau ne fera que 18 lignes. Pour ces 18 résultats de la colonne A, la colonne B n'a que 3 cellules non vides. Je souhaite que mon sous total dans la colonne B indique 3, et non pas 18 comme c'est le cas aujourd'hui.

Mon problème : Les cellules contenant des formules RECHERCHEV sont considérées par Excel comme non vides, même si le résultat est égal à 0. Le zéro est quant à lui masquable avec les options d'Excel. On a donc visuellement une cellule vide, sauf qu'en réalité Excel comptabilise systématiquement la formule.

Ma question : Comment faire en sorte qu'Excel n'affiche dans ma cellule sous total uniquement le nombre de cellules non vides, sans prendre en compte les formules qu'elles contiennent ? J'ai essayé toutes les combinaisons de formules récupérées dans tous les forums, sans que cela fonctionne.

En pièce-jointe je vous donne une copie d'écran de mon fichier.

capture ecran1154

N'hésitez pas à me poser des questions si je n'ai pas été clair.

Un grand merci pour votre aide.

François

Bonjour,

A-priori selon tes indications : =NB.SI(plage;"<>0")

Cordialement

Ferrand

Merci Ferrand mais ça ne fonctionne pas.

Ca fait comme si je n'avais pas filtré sur la colonne D = 31/08 et ça m'affiche qu'il y a 107 "OK" dans la colonne C, au lieu de 3 après le filtre.

capture ecran1155

Effectivement, les fonctions "normales" n'excluent pas les lignes masquées, et il n'y a pas de NB.SI dans les fonctions SOUS.TOTAL...

Essaie de voir du côté de NB (SOUS.TOTAL(102;...)). Mais si ta formule renvoie 0, 0 est un nombre.

En effet, cela ne fonctionne toujours pas :

capture ecran1157

C'est vraiment un casse-tête... Après ce n'est peut-être tous simplement pas possible !?

Ouais ! Il est peut-être possible de définir une formule qui reprenne ta condition de filtrage avec la condition propre à la colonne.

Mais si l'on y parvient, dès que tu changes de filtre la formule sera caduque.

Il faudrait avoir l'avis d'un habitué des fonctions SOUS.TOTAL ou AGREGAT...

Ça ne se bouscule pas au portillon, même nos experts Excel prennent des vacances 8)

Bonjour,

C'est peut-être qu'on n'a pas le courage de faire un fichier de travail que tu n'as pas mis pour tester...

eric

Bonjour à tous,

Oui désolé, je n'ai pas tous les réflexes c'est mon premier post.

Voici le fichier de travail : https://www.cjoint.com/c/EHnkpKCB8Le

J'ai sélectionné dans le filtre Excel de la colonne E : "T3-2015", on a bien 45 lignes affichées. Mais hélas les sous-totaux des colonnes C et D indiquent également 45 alors que je souhaiterais qu'elles affichent le nombre de cellules non vides.

Un idée ?

Merci,

François

Re,

tu pourrais ajouter une colonne avec :

=NB.SI(C3;"><""")

et

=SOUS.TOTAL(9;F3:F237)

eric

PS: ce qui est étrange c'est que si on fait un copié-collage spécial valeur de tes "vides" on trouve 1 caractère, de code 48. C'est un 0 mais il ne s'affiche pas (?)

Du coup =--(C3<>0) fonctionne aussi.

PS2: tu as décoché l'affichage des 0 !!!

Merci pour votre retour rapide !

J'avais déjà cette solution mais je ne peux pas rajouter de colonnes, mon fichier sert de référence à toute ma hiérarchie et je ne peux pas toucher à la structure existante.

De plus dans mon fichier original, j'ai une trentaine de colonnes ayant en entête un SOUS.TOTAL, ça ferait autant de colonnes à rajouter, ce qui serait vraiment lourd en temps en calcul à chaque nouveau filtre. Ça commence d'ailleurs déjà à ramer comme il faut...

François

J'avais déjà cette solution

Je ne sais pas si tu avais remarqué mais le test était ><"" et non <>"", ce qui n'est pas pareil...

J'avais édité mon post, je ne sais pas si tu as vu.

Ce n'est pas "" que tu as mais 0. Seulement tu as décoché l'affichage des 0, évite de t'ajouter des pièges...

Essaie avec en C3 :

=SI(RECHERCHEV($A3;'

de prod/[Suivi Projet ODS.xlsx]Liste des sites (SVSITE)'!$C:$BG;46;FAUX)="OK";1;"")

et :

=SOUS.TOTAL(109;C3:C6)

Je ne peux pas tester, il faut un mdp.

Et si tu veux vraiment OK à l'affichage tu mets "OK" en format de cellule personnalisé.

eric

Bonjour

Bonjour eriiic

Avec cette formule en D1

=SOUS.TOTAL(103;D3:D237)-SOUS.TOTAL(102;D3:D237)

Elle semble donner le bon résultat (pas tester beaucoup)

Bravo Banzai64, tu as trouvé la bonne formule !!!!!!!!

Elle fonctionne parfaitement pour toutes les colonnes et quelques soient les données qu'elles contiennent.

Je commençais à me demander si l'option VBA ne serait pas la seule issue

Merci également à MFerrand et Eriiic pour leur temps passé à m'aider.

Bien à vous,

François

J'avais le même problème, je l'ai résolu de la manière suivante:

1. dans la celle recherche je met la condition "sierreur" avec valuer 0 si je n'ai pas de résultat:

=SIERREUR((RECHERCHEV($A4;liste5;D$3;FAUX));0)

2. dans la somme des cellules contenant une valeur déterminée je met:

=NB.SI(D4:D28;"<>0")

Rechercher des sujets similaires à "compter nombre vides pas formules"