VBA – Désactiver Les Filtres Automatiques / Effacer les Filtres

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on août 22, 2022

Ce didacticiel montre comment désactiver/effacer les filtres automatiques en VBA.

Les filtres automatiques peuvent être activés ou désactivés à l’aide de code VBA.

Désactiver le Filtre Automatique dans la Feuille de Calcul Active en VBA

L’exemple de code suivant désactive le filtre automatique dans la feuille active, en vérifiant d’abord qu’il n’est pas déjà désactivé.

Public Sub Desactiver_AutoFiltre()
  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If
End Sub

Activer le Filtre Automatique dans la Feuille de Calcul Active en VBA

L’exemple de code suivant active le filtre automatique dans la feuille active, en vérifiant d’abord qu’il n’est pas déjà activé.

Public Sub Activer_AutoFiltre()
  If Not ActiveSheet.AutoFilterMode Then
     ActiveSheet.Range("A1").AutoFilter
  End If
End Sub

Désactiver le Filtre Automatique dans Toutes les Feuilles de Calcul en VBA.

L’exemple de code suivant boucle sur chaque feuille du classeur entier et désactive le filtre automatique dans chacune d’entre elles, en vérifiant d’abord que le filtre de la feuille de calcul actuelle n’est pas déjà activé.

Public Sub DésactiverTousLesFiltres()
  Dim fc As Worksheet
  For Each fc In ActiveWorkbook.Worksheets
    If fc.AutoFilterMode = True Then
      fc.AutoFilterMode = False
    End If
  Next fc
End Sub

Activer le Filtre Automatique dans toutes les Feuilles de Calcul en VBA.

De même, l’exemple de code suivant parcourt en boucle l’ensemble du classeur et active le filtre automatique dans chaque feuille, en vérifiant d’abord que celui de la feuille de calcul actuelle n’est pas déjà activé.

Public Sub StartAllFilters()
  Dim ws As Worksheet
  Pour chaque ws dans ActiveWorkbook.Worksheets
    If Not ws.AutoFilterMode Then
      ws.Range("A1").AutoFilter
    End If
  Next ws
End Sub

Effacer tous les Filtres de la Feuille de Calcul Active en VBA

L’exemple de code suivant laisse l’AutoFiltre activé dans la feuille active, mais efface tout filtre appliqué aux données.

Public Sub EffacerFiltres()
  If ActiveSheet.FilterMode = True Then
     ActiveSheet.ShowAllData
  End If
End Sub

Effacez tous les Filtres de toutes les Feuilles de Calcul en VBA

De même, l’exemple de code suivant parcourt en boucle l’ensemble du classeur et laisse le filtre automatique activé dans chaque feuille s’il l’est déjà, mais efface tous les filtres appliqués aux données.

Public Sub EffacerTousLesFiltres()
  Dim fc As Worksheet
  For Each fc In ActiveWorkbook.Worksheets
    If fc.FilterMode = True Then
      fc.ShowAllData
    End If
  Next fc
End Sub

Effacer tous les Filtres d’un Tableau en VBA

Si la feuille de calcul contient un objet tableau, nous pouvons ajuster le code pour effacer tout filtre appliqué à ce tableau, tout en laissant la fonction AutoFilter activée.

Sub EffacerFiltreTableau()
  Dim fc As Worksheet
  Dim sTableau As String
  Dim loTableau As ListObject
  
  sTableau = "Tableau1"
  Set fc = ActiveSheet
  Set loTableau = fc.ListObjects(sTableau)
  
  loTableau.AutoFilter.ShowAllData
End Sub

Si l’objet tableau est lié à un tableau croisé dynamique, le tableau croisé dynamique sera actualisé en conséquence.

La Programmation VBA Simplifiée

Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de créer leurs propres procédures avec des connaissances minimales en programmation et avec de nombreuses fonctionnalités permettant à tous les utilisateurs de gagner du temps!

alt text

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA