Enlever le filtre automatique par VBA

Comment fait-on en VBA pour savoir qu'un filtre automatique est mis sur une feuille et l'enlever ?

Il faut distinguer 2 choses :
A ) les boutons du filtre automatique peuvent être affichés sur une feuille, que ce filtre soit en application ou non. Si tu veux détecter seulement la présence ou l'absence de 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 la feuille:

sub FiltreAutoEnApplication()
 
 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

Auteur :

Mots clefs associés à cette page : , , , ,