XL 2016 VBA - Est-il possible de récupérer toutes les valeurs de filtre possible sans parcourir la colonne

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • 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 !

Dudu2

XLDnaute Barbatruc
Bonjour,

Supposons un colonne qui peut être filtrée et qui est ou non filtrée.
Peut-on récupérer toutes les valeurs listées dans la liste déroulante du filtre sans parcourir les données.

Soit ce tableau:
1757853539139.png


Je voudrais récupérer ça:
1757853684753.png
ou
1757854549856.png
 
Dernière édition:
@patricktoulon,
Bien sûr qu'il ne faut pas tout jeter. Les valeurs uniques sont la réponse à la question initiales donc il faut les conserver.


Je n'ai absolument pas compris ce que tu dis là.
Les Areas sont des Ranges comme les autres et on peut mettre en table leurs valeurs avec T = Areas.Value car on sait que c'est 8 fois plus rapide de faire référence à la table plutôt qu'aux cellules du Range (de l'Area).
Aussi on a vu plus haut que ce soit pour le T = Range.Value ou les T = Area.Value qu'il faut prendre le CStr(T(i, 1) sous peine de confondre les 0 et les Empty.
on parles alors de tableaux d'array
si tu met un array dans un key du dico il te sortira un array pas une valeur sauf si l'area est une seule cellule

c'est la base
 
si tu met un array dans un key du dico il te sortira un array pas une valeur sauf si l'area est une seule cellule
Je n'ai jamais parlé de mettre une Area dans un Key du dico. J'ai parlé de la récupération de valeurs d'une Area.
VB:
    For Each area In .Areas
        T = area.Value
        For I = 1 To UBound(T): Dico(T(I, 1)) = "": Next
    Next area
    TabVDicoUniquesColonneTS = Dico.Keys
De toutes façons, je vois pas en quoi une Area serait un Array. Une Area c'est un Range. T = Range.Value ou T = Area.Value, c'est du même bois.
Pour moi c'est ça la base. D'ailleurs j'utilise les valeurs des Areas dans le code joint et ça fonctionne, ce qui ne m'a jamais questionné.
Tu dois confondre avec Range.Areas (avec un s) ou je sais pas quoi.

A titre d'exercice, j'ai codé sur la base de vieilles fonctions en stock la récupération des valeurs uniques filtrées.
- En récupération des Criteria 1 et 2 (sous conditions voir Post 103 ci-dessus)
- Et si ça n'a pas fonctionné en parcours des valeurs après Sauvegarde des filtres / Suppression des filtres / Parcours / Restauration des filtres.

Ça a l'air de fonctionner, sauf sans doute dans un cas sur ce sujet que j'avais posté autrefois
 

Pièces jointes

Dernière édition:
Ceci dit, ce n'est peut-être pas dénué de sens de prendre les valeurs des cellules visibles même si des filtres sont définis sur d'autres colonnes.
Car ce sera la liste des valeurs uniques visibles dans la colonne ce qui peut présenter un intérêt.
 
- 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

Discussions similaires

Réponses
72
Affichages
1 K
Réponses
1
Affichages
142
Retour