Vérifier si pas de filtre actif

Résolu
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011 - 4 oct. 2010 à 17:53
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 8 oct. 2010 à 17:40
Bonjour à tous,

Je n'arrive pas à trouver en VBA le code qui vérifie si un filtre de colonne est actif.
Pour tous les enlever pas de pb, mais si je fais
ActiveSheet.ShowAllData et que je n'ai pas de filtre actif il me met une erreur.
J'aimerais l'éviter.

Merci de vos réponses,

Zeps ;-))

9 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
7 oct. 2010 à 10:01
Salut,

sinon pour simplifier tu peux aussi faire comme ceci:

On Error Resume Next
ActiveSheet.ShowAllData
On Error Goto 0


Par contre pour ta 2ieme question:
J'aimerais l'éviter.


On ne peu pas faire grand chose pour toi ici... il te faudra passer quelques années avec des moines tibétain

Vlamm ! (sortie)
4
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 oct. 2010 à 20:16
Salut

Je n'ai fait que mettre en pratique l'exemple fourni dans l'aide de AutoFilter :
    Dim r As Long, mFilter As AutoFilter
    If ActiveSheet.AutoFilterMode Then
        Set mFilter = ActiveSheet.AutoFilter
        With mFilter
            Debug.Print .Filters.Count & " colonnes filtrées"
            For r = 1 To .Filters.Count
                Debug.Print "   Le filtre sur la colonne " & CStr(r) & " est " & .Filters(r).On,
                If .Filters(r).On Then
                    Debug.Print "Critère 1 " & .Filters(1).Criteria1
                Else
                    Debug.Print
                End If
                
            Next r
        End With
    End If

Tu vois donc qu'il te suffit de lire l'état logique de .On sur la colonne de ton choix pour savoir s'il est filtré ou pas.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011
6 oct. 2010 à 00:31
merci Jack de ta réponse.
Mais j'ai 2 questions :

- Comment actives tu l'aide de AutoFilter?
- Je ne veux pas avoir l'info de la colonne, je souhaites que quelque soit la config, soit il me supprime le (les) critère(s)actif (ActiveSheet.ShowAllData), soit il ne me met pas de message d'erreur si pas de critère actif.

Zeps
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 oct. 2010 à 08:52
Pour l'aide ?
Bah tu tapes le mot AutoFilter n'importe où dans ta page de code et tu appuies sur la touche F1.

Pour la seconde partie : si tu as analysé le code, tu vois :
- que l'on connait le nombre de colonne appartenant à l'auto-filtrage
- qu'il te faut scruter chaque colonne pour savoir si elle est .On ou pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 oct. 2010 à 16:20
Non, suffirait qu'il sache lire posément les réponses :
    If ActiveSheet.AutoFilterMode Then
qui conditionnerait le
    ActiveSheet.ShowAllData
et le tour serait joué.
0
cs_zeps2 Messages postés 61 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 28 octobre 2011
7 oct. 2010 à 16:55
Bigfish, ton code me va bien.
Merci à Jack, mais tu ne réponds pas à mon besoin ==> pas de message d'erreur si aucun filtre "actif".

Pour les tibétains, faut savoir qu'il n'ont jamais rien éviter, c'est juste les champignons qu'ils prenaient qu'il leur faisait croire à une lévitation.
Alors pour la cueillette, j'ai juste besoin de la soirée.....
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 oct. 2010 à 14:43
Si, ton besoin étant d'éviter les erreurs, le meilleur moyen est de questionner les objets avant de vouloir les utiliser. C('est exactement le but du If de ma dernière réponse.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
8 oct. 2010 à 15:18
Juste un petit message pour soutenir la solution de jacK que je considère, être la plus propre( si tenté que ma considération ait une valeur ).

A+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 oct. 2010 à 17:40
Rrhooo, l'autre, hé
Pauv'ti bonhomme .
Mais si, elle a une valeur, la même que tout et chacun.
Tous les points de vue se discutent.

Tiens, on pourrait faire une émission qui s'appellerait "ça se discute", teins, pas bête ...
0
Rejoignez-nous