VBA – Desactivar Autofiltro / Borrar Filtros
In this Article
- Desactivar el Autofiltro en la Hoja de Trabajo Activa en VBA
- Activar el Autofiltro en la Hoja de Trabajo Activa en VBA
- Desactivar el Autofiltro en todas las Hojas de Trabajo en VBA.
- Activar el Autofiltro en todas las Hojas de Trabajo en VBA.
- Borrar todos los filtros en la hoja de trabajo activa en VBA
- Borrar todos los filtros en todas las hojas de trabajo en VBA
- Borrar todos los filtros en una tabla en VBA
- Codificación VBA Fácil
Este tutorial demostrará cómo desactivar/borrar los Autofiltros en VBA. Los Autofiltros pueden ser activados o desactivados usando código VBA.
Desactivar el Autofiltro en la Hoja de Trabajo Activa en VBA
El siguiente ejemplo de código desactiva el Autofiltro en la Hoja activa, verificando primero que no esté ya Desactivado.
Public Sub KillFilter()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
End Sub
Activar el Autofiltro en la Hoja de Trabajo Activa en VBA
El siguiente ejemplo de código activa el Autofiltro en la Hoja Activa, comprobando primero que no esté ya activado.
Public Sub Iniciar_Filtro()
If Not ActiveSheet.AutoFilterMode Then
ActiveSheet.Range("A1").AutoFilter
End If
End Sub
Desactivar el Autofiltro en todas las Hojas de Trabajo en VBA.
El siguiente ejemplo de código recorre cada hoja del libro de trabajo y desactiva el Autofiltro en cada hoja de trabajo, comprobando primero que el filtro de la hoja de trabajo actual no esté ya activado.
Public Sub Desactivar_todos_los_filtros()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.AutoFilterMode = True Then
ws.AutoFilterMode = False
End If
Next ws
End Sub
Activar el Autofiltro en todas las Hojas de Trabajo en VBA.
De forma similar, el siguiente ejemplo de código recorre todo el libro de trabajo y activa el Autofiltro en cada hoja, comprobando primero que el filtro de la hoja de trabajo actual no esté ya activado.
Public Sub StartAllFilters()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If Not ws.AutoFilterMode Then
ws.Range("A1").AutoFilter
End If
Next ws
End Sub
Borrar todos los filtros en la hoja de trabajo activa en VBA
El siguiente ejemplo de código deja el Autofiltro activado en la Hoja Activa, pero borra cualquier filtro que se aplique a los datos.
Public Sub Limpiar_filtros()
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
End Sub
Borrar todos los filtros en todas las hojas de trabajo en VBA
Del mismo modo, el siguiente ejemplo de código recorre todo el libro de trabajo y deja el Autofiltro activado en cada hoja si ya está activado, pero borra cualquier filtro que se aplique a los datos.
Public Sub Limpiar_todos_los_filtros()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.FilterMode = True Then
ws.ShowAllData
End If
Next ws
End Sub
Borrar todos los filtros en una tabla en VBA
Si nuestra hoja de trabajo contiene un objeto de tabla, podemos ajustar el código para que sólo borre cualquier filtro que se aplique a ese filtro, dejando el Autofiltro activado.
Sub Borrar_Filtro_De_Tabla()
Dim ws As Worksheet
Dim sTable As String
Dim loTable As ListObject
sTable = "Tabla1"
Set ws = ActiveSheet
Set loTable = ws.ListObjects(sTable)
loTable.AutoFilter.ShowAllData
End Sub
Si el objeto de la tabla está vinculado a una tabla dinámica, la tabla dinámica se actualizará en consecuencia.