VBA – Desativar AutoFiltro / Limpar Filtros
In this Article
- Desativar o AutoFiltro na Planilha Ativa em VBA
- Ativar o AutoFiltro na Planilha Ativa em VBA
- Desativar o AutoFiltro em Todas as Planilhas no VBA.
- Ativar o AutoFiltro em Todas as Planilhas em VBA.
- Limpar Todos os Filtros da Planilha Ativa no VBA
- Limpar Todos os Filtros em Todas as Planilhas em VBA
- Limpar Todos os Filtros em uma Tabela no VBA
- Codificação VBA Facilitada
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!