- Désactiver le filtre automatique dans la feuille de calcul active dans VBA
- Activer le filtre automatique dans la feuille de calcul active en VBA
- Désactivez le filtre automatique dans toutes les feuilles de calcul en VBA.
- Désactivez le filtre automatique dans toutes les feuilles de calcul en VBA.
- Effacer tous les filtres de la feuille de calcul active dans VBA
- Effacer tous les filtres dans toutes les feuilles de calcul en VBA
- Effacer tous les filtres d'une table en VBA
Ce didacticiel montrera comment désactiver/effacer les filtres automatiques dans VBA.
Les filtres automatiques peuvent être activés ou désactivés à l'aide du code VBA.
Désactiver le filtre automatique dans la feuille de calcul active dans 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é.
12345 | Sous-marin public KillFilter()Si ActiveSheet.AutoFilterMode AlorsActiveSheet.AutoFilterMode = FauxFin siFin du sous-marin |
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é.
12345 | Sous-filtre public de démarrage()Si pas ActiveSheet.AutoFilterMode AlorsActiveSheet.Range("A1").AutoFilterFin siFin du sous-marin |
Désactivez le filtre automatique dans toutes les feuilles de calcul en VBA.
L'exemple de code suivant parcourt chaque feuille du classeur entier et désactive le filtre automatique dans chaque feuille de calcul, en vérifiant d'abord que le filtre du classeur actuel n'est pas déjà activé.
12345678 | Public Sub StopAllFilters()Dim ws As Feuille de calculPour chaque ws dans ActiveWorkbook.WorksheetsSi ws.AutoFilterMode = True Alorsws.AutoFilterMode = FauxFin siWS suivantFin du sous-marin |
Désactivez le filtre automatique dans toutes les feuilles de calcul en VBA.
De même, l'exemple de code suivant parcourt tout le classeur et active le filtre automatique dans chaque feuille, en vérifiant d'abord que le filtre du classeur actuel n'est pas déjà activé.
12345678 | Sous-public StartAllFilters()Dim ws As Feuille de calculPour chaque ws dans ActiveWorkbook.WorksheetsSinon ws.AutoFilterMode Alorsws.Range("A1").AutoFilterFin siWS suivantFin du sous-marin |
Effacer tous les filtres de la feuille de calcul active dans VBA
L'exemple de code suivant laisse le filtre automatique activé dans la feuille active, mais efface tout filtre appliqué aux données.
12345 | Sous-filtre public ClearFilter()Si ActiveSheet.FilterMode = True AlorsActiveSheet.ShowAllDataFin siFin du sous-marin |
Effacer tous les filtres dans toutes les feuilles de calcul en VBA
De même, l'exemple de code suivant parcourt tout le classeur et laisse le filtre automatique activé dans chaque feuille s'il est déjà activé, mais efface tout filtre appliqué aux données.
12345678 | Sous-public ClearAllFilters()Dim ws As Feuille de calculPour chaque ws dans ActiveWorkbook.WorksheetsSi ws.FilterMode = True Alorsws.ShowAllDataFin siWS suivantFin du sous-marin |
Effacer tous les filtres d'une table en VBA
Si notre feuille de calcul contient un objet table, nous pouvons ajuster le code pour effacer tout filtre appliqué à ce filtre, tout en laissant le filtre automatique activé.
123456789 | Sous ClearFilterFromTable()Dim ws As Feuille de calculDim sTable en tant que chaîneDim loTable As ListObjectsTable = "Table1"Définir ws = ActiveSheetDéfinir loTable = ws.ListObjects(sTable)loTable.AutoFilter.ShowAllDataFin du sous-marin |
Si l'objet tableau est lié à un tableau croisé dynamique, le tableau croisé dynamique sera actualisé en conséquence.