Vérifier si un tableau (ou une range) est filtrée
Bonjour,
Je me prends la tête depuis 1h sur un sujet tout simple et dont la résolution va être très rapide... je l'imagine... :scarymov:
Je veux tout simplement savoir si mon tableau est filtré en VBA...
Je pense qu'il doit me manquer un argument et je suis surement passé à côté sur les nombreux topics que j'ai écumé...
J'ai à peu près tout testé entre les .AutoFilterMode, .FilterMode et .AutoFilter. :aie:
En voici quelques uns :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| With Worksheets(FEUIL_ORI)
Debug.Print .Range(TAB_REF & "[#Headers]").Address '=> $A$1:$J$1
Debug.Print .Range(TAB_REF).Address '=> $A$2:$J$153
Debug.Print .AutoFilterMode '=> Faux tout le temps
Debug.Print .Range(TAB_REF & "[#Headers]").AutoFilter '=> Vrai tout le temps (et m'insère mes filtres sur la plage ou les enlève en fonction de l'état initial)
'Debug.Print .Range(TAB_REF & "[#Headers]").AutoFilterMode '=> Méthode non gérée
'Debug.Print .Range(TAB_REF).AutoFilterMode '=> Méthode non gérée
'Debug.Print .Range(TAB_REF).FilterMode '=> Méthode non gérée
End With |
Voila ! Si vous avez la propriété magique, je suis preneur ! :mrgreen:
Merci par avance pour votre aide.
Je reste à votre disposition pour tout complément.
Cordialement,
Kimy
PS : Pour précision, aucun problème pour savoir si une feuille est filtrée => je parle bien d'un tableau.
Code:
1 2 3 4 5
| With Worksheets(FEUILLE)
If .AutoFilterMode Then 'sur la feuille entière
.Cells.AutoFilter
End If
End With |