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.

	

