VBA – Désactiver Les Filtres Automatiques / Effacer les Filtres
In this Article
- Désactiver le Filtre Automatique dans la Feuille de Calcul Active en VBA
- Activer le Filtre Automatique dans la Feuille de Calcul Active en VBA
- Désactiver le Filtre Automatique dans Toutes les Feuilles de Calcul en VBA.
- Activer le Filtre Automatique dans toutes les Feuilles de Calcul en VBA.
- Effacer tous les Filtres de la Feuille de Calcul Active en VBA
- Effacez tous les Filtres de toutes les Feuilles de Calcul en VBA
- Effacer tous les Filtres d’un Tableau en VBA
- La Programmation VBA Simplifiée
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!