[VBA] Détection de filtre activé ne fonctionne pas...

Le
HD
Bonjour,

Sur une feuille, je dois détecter si le filtre est activé et si c'est le
cas le désactiver mon problème est que cela ne fonctionne pas.

J'ai :
If ActiveSheet.AutoFilterMode = True Then
Range("A1").Select
Selection.AutoFilter
End If
Et rien ne se passe

Avec :
If ActiveSheet.AutoFilterMode = True Then
MsgBox "filtre"
End If
Je n'obtiens aucun message "filtre"

Je suis en Excel 2007.

Cordialement,

HD
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
HD
Le #26159522
Je m'en suis sorti avec cette fonction:

Function Filtre(BActive As Boolean)
'BActive=True si il faut activer le filtre
'BActiveúlse si il faut le désactiver
On Error Resume Next
Dim retV As Variant

retV = ActiveSheet.AutoFilter.Filters(1).On
If retV <> "" And BActive = False Then
Range("A1").AutoFilter
End If
If retV = "" And BActive = True Then
Range("A1").AutoFilter
End If
End Function

Mais c'est bizarre que ActiveSheet.AutoFilterMode = True ne fonctionne
pas ? Si vous auriez une explication... Merci.

@+
HD
Jacky
Le #26159662
Bonjour,
Mais c'est bizarre que ActiveSheet.AutoFilterMode = True ne fonctionne pas ? Si vous auriez une
explication... Merci.



Aucun problème pour faire fonctionner ce qui est décrit.

--
Salutations
JJ


"HD"
Je m'en suis sorti avec cette fonction:

Function Filtre(BActive As Boolean)
'BActive=True si il faut activer le filtre
'BActiveúlse si il faut le désactiver
On Error Resume Next
Dim retV As Variant

retV = ActiveSheet.AutoFilter.Filters(1).On
If retV <> "" And BActive = False Then
Range("A1").AutoFilter
End If
If retV = "" And BActive = True Then
Range("A1").AutoFilter
End If
End Function

Mais c'est bizarre que ActiveSheet.AutoFilterMode = True ne fonctionne pas ? Si vous auriez une
explication... Merci.

@+
HD
MichD
Le #26159652
Bonjour,

2 procédures : la première détecte la présence des boutons d'un filtre sur la feuille de calcul nonobstant qu'un filtre
puisse être actif ou non. La prodédure 2 détecte si un filtre est actuellement en application dans la feuille.

Procédure 1
'-----------------------------------------------------------
Sub PrésenceDesBoutonsDuFiltreOuNon()
With Feuil1
If .AutoFilterMode Then
MsgBox "Les boutons du filtre auto. sont absents."
Else
MsgBox "Les boutons du filtre auto. sont absents."
End If
End With
'-----------------------------------------------------------


Procédure 2
'-----------------------------------------------------------
Sub test()
With Feuil1
If .FilterMode Then
MsgBox "Un filtre est en application."
End If
End With
End Sub
'-----------------------------------------------------------

'----------------------------------------------------
Sub test()
With Feuil1
If .FilterMode Then
MsgBox "Un filtre est en application."
End If
End With
End Sub





"HD" a écrit dans le message de groupe de discussion : lm4bjl$5h4$

Bonjour,

Sur une feuille, je dois détecter si le filtre est activé et si c'est le
cas le désactiver... mon problème est que cela ne fonctionne pas.

J'ai :
If ActiveSheet.AutoFilterMode = True Then
Range("A1").Select
Selection.AutoFilter
End If
Et rien ne se passe...

Avec :
If ActiveSheet.AutoFilterMode = True Then
MsgBox "filtre"
End If
Je n'obtiens aucun message "filtre"...

Je suis en Excel 2007.

Cordialement,

HD
DanielCo
Le #26159642
Bonjour,
Je ne peux pas reproduire ton cas. Est-ce que tu peux charger un
fichier sur cjoint.com ?
Daniel


Je m'en suis sorti avec cette fonction:

Function Filtre(BActive As Boolean)
'BActive=True si il faut activer le filtre
'BActiveúlse si il faut le désactiver
On Error Resume Next
Dim retV As Variant

retV = ActiveSheet.AutoFilter.Filters(1).On
If retV <> "" And BActive = False Then
Range("A1").AutoFilter
End If
If retV = "" And BActive = True Then
Range("A1").AutoFilter
End If
End Function

Mais c'est bizarre que ActiveSheet.AutoFilterMode = True ne fonctionne pas ?
Si vous auriez une explication... Merci.

@+
HD
HD
Le #26159792
Voici le lien cjoint (valable pendant 4 jours):
http://cjoint.com/?3ECoR4rQPOr

J'ai encore testé... et rien n'y fait. ActiveSheet.AutoFilterMode
m'affiche toujours Faux que le filtre soit activé ou non.



@+
HD
HD
Le #26159812
With Feuil1
If .AutoFilterMode Then
MsgBox "Les boutons du filtre auto. sont présents."
Else
MsgBox "Les boutons du filtre auto. sont absents."
End If
End With

J'ai "Les boutons du filtre auto. sont absents." qui s'affiche.


Sub test()
With Feuil1
If .FilterMode Then
MsgBox "Un filtre est en application."
Else
MsgBox "Un filtre n'est pas en application."
End If
End With
End Sub

J'ai "Un filtre n'est pas en application." qui s'affiche...

@+
HD
MichD
Le #26159832
Ne perds pas ton temps à faire des commentaires qui sont compréhensibles, surtout pas!

Je te laisse t'organiser tout seul si tu arrives à comprendre tes propres commentaires!
DanielCo
Le #26159872
Le problème vient du fait qu'il s'agit du filtre d'un tableau. Si tu
fais un filtre en dehors du tableau, ton code fonctionnera.
Daniel


Voici le lien cjoint (valable pendant 4 jours):
http://cjoint.com/?3ECoR4rQPOr

J'ai encore testé... et rien n'y fait. ActiveSheet.AutoFilterMode m'affiche
toujours Faux que le filtre soit activé ou non.



@+
HD
HD
Le #26159932
Le problème vient du fait qu'il s'agit du filtre d'un tableau. Si tu
fais un filtre en dehors du tableau, ton code fonctionnera.



Ouille... effectivement... D'habitude je n'utilise pas de tableaux mais
là j'ai repris les classeurs d'une collègue qui elle a due faire ses
tableaux en passant par un tableau Excel. Merci de votre aide.



@+
HD
Publicité
Poster une réponse
Anonyme