XL 2016 VBA - Impossible de récupérer Criteria2 sur un filtre sur Date en tableau structuré

Dudu2

XLDnaute Barbatruc
Bonjour,

Quelque chose qui semble trivial mais qui ne fonctionne pas. A mon avis un bug Excel mais j'aimerais votre confirmation.

Il s'agit de récupérer les informations d'un filtre sur Date qui utilise Filter(x).Operator et Filter(x).Criteria2.
On ne peut pas récupérer Filter(x).Criteria2 (erreur 1004) alors que la macro de mise en place du filtre utilise explicitement Criteria2.
De plus le Filter(x).Operator (0) récupéré est faux car il devrait être xlFilterValues = 7

Dans tous les autres cas on peut récupérer Filter(x).Criteria1, Filter(x).Operator et Filter(x).Criteria2.
 

Pièces jointes

  • Classeur2.xlsm
    22.1 KB · Affichages: 4
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour @Staple1600,

J'espère que tu passes un bon dimanche.
Perso, étant retraité, c'est un jour comme les autres, voir pire puisque rien n'est ouvert :D.

Merci pour la suggestion.

Le gars pose en effet la même question que moi (à part l'Operator qu'il ne mentionne pas) et il obtient 2 réponses qui ne concernent pas la récupération de Criteria2 (qui pose problème et est l'objet de sa demande) mais qui sont relatives à la mise en place du filtre.

La mise en place du filtre ne pose aucun de problème, c'est la récupération de Operator et Criteria2 du filtre en place qui plante sans qu'on comprenne pourquoi.

Edit: D'ailleurs le gars le précise sur chacune des réponses:

Sur réponse 1:
I'm not trying to filter. After a column of dates in a table is filtered, I am trying to take the value that has been filtered, Criteria2, and assign it to a variable.

Sur réponse 2:
I think this is flipped from what I am trying to do. I am not trying to filter a table based on criteria. I am trying to filter a table then take the criteria that was used to filter and assign it to a variable.
 

Dudu2

XLDnaute Barbatruc
Sur ce forum, il semble que la réponse d'un développeur de Microsoft soit sans appel:

La question:
Laurent Wright
Senior Business Analyst
-----Original Message-----
From: Microsoft Excel Developers List
[mailto:EXCEL-L@PEACH.EASE.LSOFT.COM] On Behalf Of Daniel
Sent: 11 February 2012 13:53
To: EXCEL-L@PEACH.EASE.LSOFT.COM
Subject: Excel 2010 Auto filter Criterias

When I use dates criteria, the macro recorder displays :
ActiveSheet.Range("$D$1:$D$17").AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(2, "1/3/2012", 2, "1/5/2012")

My main concern is to retrieve this array. Also why Criteria2 ? Also, what
"2" stands for ? I don't find any clue on the internet.


Thanks in advance.
Daniel

La réponse:
De : Microsoft Excel Developers List [mailto:EXCEL-L@PEACH.EASE.LSOFT.COM]
De la part de Rory Archibald
Envoyé : lundi 13 février 2012 11:05
À : EXCEL-L@PEACH.EASE.LSOFT.COM
Objet : Re: Excel 2010 Auto filter Criterias

Yes the 0,1,2 are just the checkbox level. It does appear impossible to
return the filter values directly (they are stored in the XML of course)

Regards,
Rory
 

Dudu2

XLDnaute Barbatruc
Même question sans réponse à Microsoft:

Le gars qui pose la question propose un contournement:
To save anyone from spending time on a workaround I already have a workaround by identifying if the column has dates and then create an array of unique values from the column of filtered data but I thought that I should be able to collect this data directly from the Criteria.

En fait il propose sauvegarder ce filtre comme un filtre d'une liste de valeur (en Array en Criteria1, Operator = xlFilterValues = 7) qu'il aura récupérées dans la colonne des dates filtrées.

C'est un peu laborieux et ça ne reflète pas la réalité du filtre au cas où d'autres dates seraient ajoutées. Mais pour un tableau non évolutif, ça peut le faire.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bon, j'ai essayé le "workaround" du gars et ben ça marche ! Amusant.

Le seul truc c'est que le filtre sur la colonne Date est complétement perdu et ne reflète plus rien:
Au départ: ......................................................Après Suppression / Reconstruction en liste de valeurs:
1647188334489.png
1647188379367.png


Mais l'affichage de la colonne filtrée est bien le même dans les 2 cas.
Évidemment ça ne vaut que pour les tableaux qui ne sont pas modifiés dans la colonne Date car évidement si le résultat est le même à l'instant T, les filtres étant de natures différentes, il va diverger au 1er ajout d'une date non listée dans les valeurs.

N.B. Dans ce fichier, un module de gestion des filtres sur tableau structuré pour ceux intéressés.
(Module_FiltresTableauStructuré)
Edit: pour le fichier voir Posts suivants.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Dudu2
Ta retraite te permets de te spécialiser dans les problèmes ardus avec Excel ;)
Au prochain lièvre que tu auras levé dans notre tableur préféré.
(et merci pour tous tes tests et infos)

Bonne fin de dimanche

Moi, faut que je mette en condition pour aller au taf demain ;)
Allez, haut les coeurs ! (heureusement qu'une part de mon boulot se fait avec Excel)
 

Discussions similaires

Réponses
8
Affichages
877

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan