XL 2013 Macro VBA: Utiliser toutes les valeurs d'un filtre les unes après les autres?

Quitus

XLDnaute Nouveau
Bonjour,
J'ai besoin d'utiliser toutes les valeurs d'un filtre les unes après les autres. J'avais mis mes valeurs fixe dans un tableau et avec un For j'exécutais mes instruction filtrées pour chacune d'entre elles cependant celle-ci sont amenés à changer donc j'aimerais savoir si vous avez une macro pour réaliser ce filtre pour toutes les données du filtre.
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Je crois qu'il faut faire comme indiqué ici.
Copier la colonne quelque part et faire un Range.RemoveDuplicates, puis exploiter les valeurs de la colonne de travail.
Ou alors tu travailles en mémoire, tu copies la colonne dans un tableau (Dim Tableau as Variant: Tableau = Colonne.Value), tu tries le tableau si la colonne ne l'est pas déjà et tu ignores / passes les doubles en parcourant le tableau. Si la colonne est déjà triée, ça peut être une solution très rapide, un peu moins si tu dois faire un tri.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai deux modules de service qui savent établir ce genre de chose: l'une pour une seule colonnes, c'est la fonction SujetCBx du complément fourni ici, l'autre c'est ma fonction Gigogne, qui peut l'établir pour plusieurs colonnes hiérarchisées.
 

Pièces jointes

  • GigIdx.xlsm
    98.5 KB · Affichages: 10

Dudu2

XLDnaute Barbatruc
Hello,
Je viens de m'intéresser aux méthodes de tris pour améliorer mon antique tri par permutations de valeurs très peu performant comparé aux fusées que sont les ShellSort et QuickSort que j'ai placés dans le classeur joint avec une démo de tri de 100.000 valeurs sur la colonne A.
 

Pièces jointes

  • Algorithmes de tri et valeurs uniques.xlsm
    35.9 KB · Affichages: 3
Dernière édition:

Dranreb

XLDnaute Barbatruc
Pour information: mes fournitures utilisent un algorithme d'indexation par fusions utilisant une collection, encore légèrement plus rapide, et qui a l'avantage de se ramener à une simple vérification séquentielle si l'ensemble est déjà classé.
 

Dudu2

XLDnaute Barbatruc
Je me suis principalement intéressé au tri.

Et en utilisant la fonction WorksheetFunction.Transpose qui a un comportement particulier sur les changements de dimensions qui permet de l'utiliser avec bénéfice sur les tableaux issus de Ranges, j'ai constaté par hasard qu'elle est limitée à 41248 éléments de tableau !
J'ai don dû écrire une fonction TransposeExcel qui a le même comportement en terme de changements de dimensions mais qui n'a pas cette limite stupide et non documentée.
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 839
Membres
102 686
dernier inscrit
Franck6950