comptage cellule MEFC

  • Initiateur de la discussion Initiateur de la discussion Julien
  • Date de début Date de début

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 !

J

Julien

Guest
Bonjour à tous,

Après avoir passé plusieurs heures à rechercher une solution à mon problème dans les archives, je me résoud à poser ma question sur le forum:

comment compter (par une formule, ou à l'aide d'une fonction VBA, voire d'une macro) les cellules répondant à une mise en forme conditionnelle dans une liste filtrée??

Merci d'avance
Julien 😱
 
Bonjour à tous

re voici ton fichier avec une petite macro supplémentaire, si cela peut aider

@+ [file name=Julien_20060515165037.zip size=18462]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Julien_20060515165037.zip[/file]
 

Pièces jointes

Ave,

Concernant ton exemple, il ne faut pas poser le problème en ces termes mais se servir des tests logiques utilisés dans la MEFC et la plage de critère du filtre élaboré.
Ce qui revient à poser la question suivante :
Combien il y a-t-il de valeurs dans la plage ''Module'' inférieures à la valeur de B4 (mauvais la cellule fusionnée !) pour des valeurs de la plage ''SDR'' comprises entre 30 (exclu) et 32 (inclus)
Ce qui, avec plages nommées, donne la formule suivante :
=SOMMEPROD((Module ‹ B4)*(SDR › 30)*(SDR ‹ =32))

AV [aaa]
 
@henri,

Ben non, regarde bien, on ne compte pas les cellules rouges...
Il y a ''péril'' à prendre les causes pour les conséquences et ''lycée de Versailles'' : la couleur d'une MEFC est la conséquence d'un calcul.
Le bon plan est donc de se servir de ce calcul pour décompter.
Les fonctions persos qui compte les cellules en couleurs sont à fortement déconseiller !
Pour les raisons que :
** Le changement de format n'entraine aucun recalcul donc pas de modification du résultat
** Pour tenter de les ''faire fonctionner''on est obligé de faire appel à une proc évènementielle ''Worksheet_SelectionChange'' ce qui signifie que tout changement de sélection va entrainer un recalcul complet du classeur.
** Les index de couleur sont assez peu fiables et modifiables donc ce qui est rouge (3) ici, ailleurs pourra être ????

Bon, voilà... j'ai fait ma BA..
AV [aaa]
 
Bonjour à tous

Tout d'abord merci pour votre aide, je commence à y voir plus clair dans les possibilités pour arriver à ce que je veux faire.

Par contre je voulais repréciser une chose : la liste est filtrée grâce aux cellules A9 et B9, et ces chiffres je les fais varier. Donc en ce qui concerne la formule de AV, ce qui est embêtant c'est qu'il faut que je modifie à chaque fois les valeurs de SDR dans la formule.
Jean-Marie, je pense que ta formule peux marcher, mais il y a un smiley dedans à la place de quelque chose, et je ne trouve pas ce qu'il faut mettre!

Voilà, je vais essayer les autres réponses et je vous tiens tous au courant.

En tout cas, merci encore. A+
Julien.
 
Re,

Je viens de regarder les fichiers de Pierrot93 et d'Henri, et le problème est que dans chaque cas, on compte TOUTES les cellules, et non pas seulement celles filtrées.
Encore merci et à bientôt.

Julien.
 
Re,

''..en ce qui concerne la formule de AV, ce qui est embêtant c'est qu'il faut que je modifie à chaque fois les valeurs de SDR dans la formule...''

Dans la mesure ou tu filtres chaque fois par macro, il ''suffit'' d'intégrer le calcul directement dans la macro par un Evaluate pour prendre en compte le contenu de la zone de critères et avoir le résultat dans une cellule quelconque :

Exemple avec plage nommées et résulktat en J1:

Sub filtrer()
[bdd].AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range('Criteria'), Unique:=False
[J1] = Evaluate('Sumproduct((Module <' & [B4] & ')*(' & [A8] & [A9] & ')*(' & [B8] & [B9] & '))')
End Sub

AV [aaa] [file name=FiltrElabMacro.zip size=15489]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FiltrElabMacro.zip[/file]
 

Pièces jointes

Ta macro est exactement ce que je recherche, mais dès que je change les valeurs du filtre (les SDR de A9 et B9) sur ton exemple, j'ai une erreur de Valeur dans J1!
Je ne comprends pas le code que tu utilise, alors je ne peux même pas essayer de trouver la solution tout seul. Désolé.

En tout cas merci pour ton aide

Julien.
 
Bonjour

J'espère quelle va passer correctement
Code:
=SOMMEPROD(SOUS.TOTAL(2;DECALER(I1;LIGNE(I14:I150)-1;))*(I14:I150<B4))

Cette formule comparée à celle de AV, prend en compte les filtres qui peuvent être appliqués sur la zone, rajout un filtre, la formule ci-dessus te donnera le bon résultat.

@+Jean-Marie

Message édité par: JeanMarie, à: 16/05/2006 12:39
 
C'EST ENORME!!!!!
Jean-Marie, je viens de tester ta formule, et cela marche parfaitement!!
Grand merci et bravo à toi, mais aussi à tous ceux qui m'ont répondu pour tenter de solutionner mon problème!(Henri, Pierrot93 et AV bien sûr!!)


🙂

Je ne voudrais pas abuser de votre gentillesse, mais est-il possible de prendre en compte la valeur d'une cellule pour définir la première cellule d'une plage? En essaynt d'être plus clair, par rapport à la formule de Jean-Marie, peut-on demander à Excel de prendre en compte la valeur de la cellule D1(par exemple) à la place de I14. Cela me permettrai de compter les cellules rouges qu'à partir de la ligne qui m'intéresse??

En tout cas, merci encore à tout de prendre du temps pour aider les exceliens non initiés que je représente et bravo pour votre réactivité et votre talent!!

A bientôt.

Julien
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
212
wDog66
W
Retour