VBA – Desactivar Autofiltro / Borrar Filtros

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 22, 2022

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.

Codificación VBA Fácil

Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un Constructor de Código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios alt text

Más información

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples