Neste artigo você aprenderá como criar um filtro automático no Excel que ao digitar os dados serão filtrados automaticamente.
Como Funciona o Filtro Automático ao Digitar no Excel
O procedimento filtro do Excel é realmente muito útil, ele normalmente nos atende bem.
Mas há vezes em que precisamos que estes dados sejam filtrados de forma mais dinâmica, pois não sabemos exatamente como está escrito e fazemos isso com frequência.
Veja que abaixo temos o filtro automático diretamente em uma tabela. Veja abaixo como funciona:
Habilitar as Macros Excel
A primeira parte é habilitar as macros do Excel.
Este procedimento é necessário porque o filtro automático neste exemplo foi feito com VBA.
Veja neste artigo como fazer rapidamente: Habilitar macros Excel
Preparar a Tabela com Filtros ao Digitar
Para criar a tabela com filtro automático aplique o filtro em uma tabela ou em uma lista de dados.
Então clique na guia Desenvolvedor e clique em Inserir->Caixa de texto e desenhe sobre os campos da tabela.
Então após isso clique em Gravar Macro e realize filtros digitando por exemplo no primeiro campo.
Você terá então o filtro aplicado e gravado na macro do VBA que usaremos para aplicar na caixa de texto ao digitar.
Após isso, clique em Modo de Design na guia Desenvolvedor e clique duas vezes sobre a caixa de texto que desenhou logo acima do filtro aplicado.
Ao clicar duas vezes você verá a tela do VBA, vá no módulo 1 que está criado o código e copie e cole sobre o evento.
Selecione na caixa de texto o evento Change e faça conforme abaixo o código:
Private Sub txtCodigo_Change()
If txtCodigo.Value <> "" Then
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=1, Criteria1:= _
"=" & txtCodigo.Text, Operator:=xlAnd
Else
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=1
End If
End Sub
Veja que nele temos, se for diferente de branco aplicar o filtro, aonde foi removido o filtro aplicado e colocado o valor do textbox em txtCodigo.Text.
E se não tiver valor é aplicado filtro sem passar nada no critério.
Sendo assim temos variações para números inteiros, datas, partes de texto, etc.
Filtro de Data
Abaixo temos um filtro de datas aplicado entre um período de datas, para isso usamos >= e <=.
Private Sub txtInicio_Change()
On Error GoTo tratarerro
If txtInicio.Value <> "" Then
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=7, Criteria1:= _
">=" & Format(txtInicio, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(txtFim, "mm/dd/yyyy")
Else
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=7
End If
Sair:
Exit Sub
tratarerro:
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=7
GoTo Sair
End Sub
Filtro de Texto Contém
Neste filtro temos um filtro contém, aonde foi passado * no campo de filtro do critério.
Private Sub txtProduto_Change()
If txtProduto.Value <> "" Then
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=3, Criteria1:= _
"=*" & txtProduto.Value & "*", Operator:=xlAnd
Else
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=3
End If
End Sub
Filtro de Valor
Para aplicar o filtro de valores estamos passando >= e <= o filtro para valores deve ser feito desta forma.
Private Sub txtPreco_Change()
If txtPreco.Value <> "" Then
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=5, Criteria1:= _
">=" & Replace(txtPreco.Value, ",", "."), Operator:=xlAnd, Criteria2:="<=" & Replace(txtPreco.Value, ",", ".")
Else
ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=5
End If
End Sub
Download Planilha Filtro Automático ao Digitar Excel
Realize o download da planilha de filtro automático no Excel neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.