Afficher le critère d'un filtre dans une cellule

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
binbyz974
Fraîchement OOthentifié
Messages : 3
Inscription : 29 févr. 2012 12:31

Afficher le critère d'un filtre dans une cellule

Message par binbyz974 »

Bonjour,

Je souhaiterais, dans mon tableau sous Calc sur lequel un Autofiltre est en place, récupérer le critère sur lequel mon filtre est appliqué (Ex : Dans une colonne "Fonctions" : Filtre sur "informaticien";"magasinier" etc...)et l'afficher dans une cellule en ehors de mon tableau (A titre informatif). Est-ce que quelqu'un sait si c'est possible et si oui, de quel manière?

Merci d'avance pour l'aide qu'on pourra m'apporter.
OpenOffice 3.3 sous Windows 7
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: Afficher le critère d'un filtre dans une cellule

Message par OOotremer971 »

Bonjour à tous,

Supposons que la colonne A soit filtrée. A1 contient l'entête de colonne, en l'occurrence Fonctions, l'autofiltre est appliqué à partir de la cellule A1. La cellule A2 affiche obligatoirement le critère le critère sélectionné en A1. Il suffit alors de faire référence à la cellule A2 ailleurs dans le document :

Code : Tout sélectionner

=$A$2
:idea:
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Afficher le critère d'un filtre dans une cellule

Message par Jean-Louis Cadeillan »

Bonjour et bienvenue sur le forum,
C'est l'occasion d'appliquer une petite astuce que je signalais récemment...
La récupération se fait dans le fichier joint en B1 par la formule :

Code : Tout sélectionner

=SI(NB.SI($B$2:$B$21;1)=NB(B2:B21);"rien";INDEX($A$2:$A$21;EQUIV(1;$B$2:$B$21;0)))
Explications :
  • en B2:B21 se trouvent soit 0 si la ligne est masquée par autofiltre, 1 sinon
  • si le nombre de 1 est égal au nombre de lignes, c'est que rien n'est masqué, donc pas de choix, la formule retourne "rien"
  • sinon, EQUIV() va chercher le premier 1 et retourne son rang dans la plage B2:B21
  • INDEX() récupère cette valeur dans la première colonne pour afficher le choix correspondant.
Cordialement
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
binbyz974
Fraîchement OOthentifié
Messages : 3
Inscription : 29 févr. 2012 12:31

Re: Afficher le critère d'un filtre dans une cellule

Message par binbyz974 »

Tout d'abord, merci beaucoup pour vos réponses.

Jean-Louis, en m'appuyant sur ta formule, j'arrive maintenant à afficher la valeur filtrée dans une cellule. Cependant, lorsque qu'il n'y a aucun filtre, il m'affiche quand même la valeur de la premiere cellule de la colonne "fonction". De plus, peut-on ne rien afficher si le filtre est effectué sur une autre colonne?

Je joins un exemple de mon fichier si ça peut aider.

Dans mon fichier, la formule est en I1.

Encore un grand merci pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.3 sous Windows 7
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Afficher le critère d'un filtre dans une cellule

Message par Jean-Louis Cadeillan »

Le problème c'est que deux évènements retournaient 0 dans la colonne S :
  • soit la ligne était masquée
  • soit la cellule E de la ligne était vide
J'ai rajouté un test pour discriminer ces deux cas.
A+
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 936
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: Afficher le critère d'un filtre dans une cellule

Message par luky-luke »

Bonjour binbyz974,
Jean-Louis Cadeillan a écrit :si le nombre de 1 est égal au nombre de lignes, c'est que rien n'est masqué, donc pas de choix, la formule retourne "rien"
La formule en "i1" est écrite sur la plage "S4:S100" comme tu as des lignes vide, il est normal que la cellule "i11" affiche quelque chose. Il faut ajuster la formule au nombres de lignes éditées.

Ou aLors.... jean louis à une solution :wink:
 Ajout : OUPS ! Non eulement je répond trop tard mais en plus j'ai rien compris 
Cordialement
Luke
AOO 4.1.3 et LibO 5.3.7.2 Ubuntu 16.04 LTS et Debian 9
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Afficher le critère d'un filtre dans une cellule

Message par Jean-Louis Cadeillan »

si, si tu as bien compris luke, il fallait juste que la cellule de S n'affiche rien (et pas zéro) quand la cellule de E ne contient rien... :wink:
Comme ça, ça permet d'étendre les formules de S au-delà du filtre et ainsi ça fonctionnera même avec plus de lignes dans le filtre...
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
binbyz974
Fraîchement OOthentifié
Messages : 3
Inscription : 29 févr. 2012 12:31

Re: Afficher le critère d'un filtre dans une cellule

Message par binbyz974 »

Je vois enfin le bout du tunnel!!! :) Il est sur que quand on ne bidouille pas régulièrement dans Calc, on ne peux pas devenir une bête! lol Mais au moins ça permet d'apprendre...En tout cas, un grand merci à toi Jean-Louis. Il me reste un dernier point à traiter : le fait de ne rien afficher si le filtre est activé sur une autre colonne que "fonction". Est-ce réalisable?
OpenOffice 3.3 sous Windows 7
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Afficher le critère d'un filtre dans une cellule

Message par Jean-Louis Cadeillan »

Bonjour,
je vois une "quasi-solution" : afficher la fonction si tous les employés et seulement eux sont affichés par autofiltre, quel que soit le champ utilisé pour configurer l'autofiltre. Par exemple, si je sélectionne roger dans l'autofiltre "nom", alors CCH s'affichera quand même en I1, puisque roger est le seul CCH. Par contre si je sélectionne dumont, I1 n'affichera rien puisqu'il y a deux informaticiens dans la lliste. Pour des raisons de référence circulaire, j'utilise une cellule H2 pour faire le test :

Code : Tout sélectionner

=SOMMEPROD($E$4:$E$88=I1)=SOMMEPROD($E$4:$E$88=I1;S4:S88)
Explications :
  • si le nombre d'employés qui ont la fonction affichée dans I1 = nombre d'employés qui ont la fonction affichée dans I1 et qui ne sont pas masqués, alors la formule retourne VRAI
  • le résultat de cette formule est utilisé par une Mise en Forme Conditionnelle (MFC) pour I1 :

    Code : Tout sélectionner

    NON($Feuille1.$H$2)
    ==> si H2 est FAUX, alors I2 est invisible
Je ne vois pas de solution au sens strict, par la formule de type

Code : Tout sélectionner

 = SOUS.TOTAL(3;A1:A1)
qui ne fait que repérer une ligne masquée ou non par autofiltre, sans récupérer aucunement l'information "quel critère d'autofiltre"...
Si tu tiens absolument à ne rien afficher quand l'autofiltre sur le critère fonction n'est pas activé, tu peux poser la question dans la rubrique Macros et API, il y a peut-être une solution...
A+
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1