VBA – Desativar AutoFiltro / Limpar Filtros

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on June 26, 2023

Este tutorial demonstrará como desativar/limpar os AutoFiltros no VBA.

Os filtros automáticos podem ser ativados ou desativados usando o código VBA.

Desativar o AutoFiltro na Planilha Ativa em VBA

O exemplo de código a seguir desativa o AutoFiltro na planilha ativa, verificando primeiro se ele ainda não está desativado.

Public Sub DesativarFiltros()
  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If
End Sub

Ativar o AutoFiltro na Planilha Ativa em VBA

O exemplo de código a seguir ativa o AutoFiltro na planilha ativa, verificando primeiro se ele ainda não está ativado.

Public Sub AtivarFiltros()
  If Not ActiveSheet.AutoFilterMode Then
     ActiveSheet.Range("A1").AutoFilter
  End If
End Sub

Desativar o AutoFiltro em Todas as Planilhas no VBA.

O exemplo de código a seguir percorre cada planilha em toda a pasta de trabalho e desativa o AutoFiltro em cada planilha, verificando primeiro se o filtro na planilha atual ainda não está ativado.

Public Sub DesativarTodosFiltros()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.AutoFilterMode = True Then
      ws.AutoFilterMode = False
    End If
  Next ws
End Sub

Ativar o AutoFiltro em Todas as Planilhas em VBA.

Da mesma forma, o exemplo de código a seguir percorre toda a pasta de trabalho e ativa o AutoFiltro em cada planilha, verificando primeiro se o filtro na planilha atual ainda não está ativado.

Public Sub AtivarTodosFiltros()
  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

Limpar Todos os Filtros da Planilha Ativa no VBA

O exemplo de código a seguir deixa o AutoFiltro ativado na planilha ativa, mas limpa todos os filtros aplicados aos dados.

Public Sub LimparFiltro()
  If ActiveSheet.FilterMode = True Then
    ActiveSheet.ShowAllData
  End If
End Sub

Limpar Todos os Filtros em Todas as Planilhas em VBA

Da mesma forma, o exemplo de código a seguir percorre toda a pasta de trabalho e mantém o AutoFiltro ativado em cada planilha, se já estiver ativado, mas limpa todos os filtros aplicados aos dados.

Public Sub LimparTodosFiltros()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.FilterMode = True Then
      ws.ShowAllData
    End If
  Next ws
End Sub

Limpar Todos os Filtros em uma Tabela no VBA

Se nossa planilha contiver um objeto de tabela, poderemos ajustar o código para limpar qualquer filtro aplicado a esse filtro, mantendo o AutoFiltro ativado.

Sub LimparFiltroDaTabela()
  Dim ws As Worksheet
  Dim sTable As String
  Dim loTable As ListObject
  sTable = "Tabela1"
  Set ws = ActiveSheet
  Set loTable = ws.ListObjects(sTable)
  loTable.AutoFilter.ShowAllData
End Sub

Se o objeto de tabela estiver vinculado a uma tabela dinâmica, a tabela dinâmica será atualizada de acordo.

Codificação VBA Facilitada

Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!

alt text

Saiba mais!

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA