[Excel VBA] Numéro 1ère colonne filtrée

Fermé
Elodar - 21 sept. 2010 à 12:06
 Elodar - 23 sept. 2010 à 16:59
Bonjour à tous !


Je suis sous Excel 2007.

Dans le cadre du développement d'une fonction personnalisée (sur laquelle j'ai déjà bien avancé grâce à votre forum, donc merci ^^), j'aurais besoin de connaitre le numéro de la première colonne étant en mode filtre. Le filtre n'a pas besoin d'être actif mais elle doit comporter la petite flèche permettant de filtrer.

Quelqu'un aurait-il une idée sur la manière d'obtenir cette information ?

J'imagine que l'on doit se servir de .AutoFilterMode et de .AutoFilter.Filters(numéro_de_colonne) Mais je ne vois pas trop comment agencer tout ça...

A terme, cela me permettra de récupérer la valeur d'un filtre appliqué sur une colonne. Pour ce faire, j'ai besoin de donner de manière dynamique son "numéro de colonne filtrée" et non son "numéro absolu" (si je souhaite récupérer la valeur du filtre appliqué à la colonne D mais que le mode filtre est activé sur les colonnes C à E, le "numéro de colonne filtrée" de la colonne D est 2 et non 4...)

Merci d'avance de votre aide


A voir également:

3 réponses

Un petit up pour ne pas qu'on m'oublie =)

Si on pouvait me donner un petit coup de main, ça serait super...

Merci d'avance
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
23 sept. 2010 à 09:49
Salut,

Je pense que tu dois commencer par Identifier les filtres
0
Avant tout, merci de m'avoir répondu ^^

En effet, si je réutilise :

With .AutoFilter.Filters
For x = 1 To .Count
'Colorie la colonne en jaune si le filtre est actif
If .Item(x).On Then Ws.Columns(x).Interior.ColorIndex = 6
Next
End With

En y apportant la modification suivante :

With .AutoFilter.Filters
For x = 1 To .Count
If .Item(x).On Then NumColFilt = x
x = .Count
Next
End With

Théoriquement, cela devrait me permettre de quitter la boucle FOR dès que j'ai stocké le numéro de la première colonne filtrée dans la variable NumColFilt...

Je vais essayer ça mais si vous voyez quelque chose qui vous chiffonne, n'hésitez pas à me le signaler...
0