OVH Cloud OVH Cloud

VBA et filtre automatique

3 réponses
Avatar
Christian.L
Bonjour à tous

Comment fait t'on en VBA pour ;
- savoir qu'une feuille fait l'objet d'un filtre automatique
- enlever celui ci

Merci d'avance

C.L.

3 réponses

Avatar
ChrisV
Bonjour Christian.L,

Sub zaza()
With ActiveSheet 'ici la feuille active, ou le nom de l'onglet à examiner
If .AutoFilterMode Then
inF = "Filtre activé."
MsgBox inF, vbInformation
'supprimer le filtre
Selection.AutoFilter
MsgBox "Le filtre automatique va être désactivé !"
Else
inF = "Aucun filtre."
MsgBox inF, vbInformation
End If
End With
End Sub


ChrisV


"Christian.L" a écrit dans le message de
news: %
Bonjour à tous

Comment fait t'on en VBA pour ;
- savoir qu'une feuille fait l'objet d'un filtre automatique
- enlever celui ci

Merci d'avance

C.L.


Avatar
michdenis
Bonjour Christian,

Il faut distinguer 2 choses :

A ) les boutons du filtre automatique peuvent être affiché sur une feuille nonobstant le fait si un filtre est en application.
Si tu veux détecter seulement la présence ou l'absence ce ces boutons :
'-------------------------------
Sub PrésenceDesBoutonsDuFiltre()

With Worksheets("Feuil5")
If .AutoFilterMode Then
MsgBox "Filtre auto. en application."
Else
MsgBox "Aucun filtre auto. en application."
End If
End With

End Sub
'-------------------------------

B ) Si tu veux savoir si effectivement il y a un filtre en application sur ladite Feuille, pas seulement si le boutons du filtre
sont présents :
'-------------------------------------
Sub FilteAutoEnApplication()

Dim Rg As Range

On Error Resume Next
Set Rg = Worksheets("Feuil5").AutoFilter.Range
If Err = 0 Then
For Each C In Rg.Columns
'C.column représente la colonne où est
'appliquée le filtre auto.
If Me.AutoFilter.Filters(C.Column).On = True Then
MsgBox "Plage filtrée"
Exit For
End If
Next
Else
Err = 0
MsgBox "Aucun filtre en application"
End If
Set Rg = Nothing
End Sub
'-------------------------------------


Salutations!




"Christian.L" a écrit dans le message de news: %
Bonjour à tous

Comment fait t'on en VBA pour ;
- savoir qu'une feuille fait l'objet d'un filtre automatique
- enlever celui ci

Merci d'avance

C.L.
Avatar
Christian.L
Merci à tous les deux, c'est exactement ce que je recherchais

C.L.


"Christian.L" a écrit dans le message de
news: %
Bonjour à tous

Comment fait t'on en VBA pour ;
- savoir qu'une feuille fait l'objet d'un filtre automatique
- enlever celui ci

Merci d'avance

C.L.