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.

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

Messagepar binbyz974 » 29 Fév 2012 13:46

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
binbyz974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 29 Fév 2012 13:31

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

Messagepar OOotremer971 » 29 Fév 2012 14:14

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   AgrandirRéduire
=$A$2


:idea:
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Ubuntu
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2011
Inscrit le : 16 Avr 2010 14:31

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

Messagepar Jean-Louis Cadeillan » 29 Fév 2012 14:23

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   AgrandirRéduire
=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
Pièces jointes
binbyz974_01.ods
Récupération du choix d'un autofiltre
(9.03 Kio) Téléchargé 673 fois
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4413
Inscrit le : 03 Jan 2009 00:56

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

Messagepar binbyz974 » 29 Fév 2012 17:23

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
Pièces jointes
stats.ods
exemple
(23.61 Kio) Téléchargé 382 fois
OpenOffice 3.3 sous Windows 7
binbyz974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 29 Fév 2012 13:31

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

Messagepar Jean-Louis Cadeillan » 29 Fév 2012 18:03

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
Pièces jointes
binbyz974_02.ods
Récupération du choix d'un autofiltre
(21.06 Kio) Téléchargé 327 fois
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4413
Inscrit le : 03 Jan 2009 00:56

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

Messagepar luky-luke » 29 Fév 2012 18:07

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
luky-luke
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 873
Inscrit le : 27 Nov 2010 01:17
Localisation : gâtine deux-sèvrienne

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

Messagepar Jean-Louis Cadeillan » 29 Fév 2012 18:26

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 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4413
Inscrit le : 03 Jan 2009 00:56

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

Messagepar binbyz974 » 01 Mars 2012 06:35

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
binbyz974
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 29 Fév 2012 13:31

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

Messagepar Jean-Louis Cadeillan » 01 Mars 2012 11:08

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   AgrandirRéduire
=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   AgrandirRéduire
    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   AgrandirRéduire
= 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
Pièces jointes
binbyz974_03.ods
Récupération conditionnelle du choix d'un autofiltre multicritères
(23.32 Kio) Téléchargé 308 fois
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4413
Inscrit le : 03 Jan 2009 00:56


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 13 invité(s)