Filtro Automático ao Digitar Excel

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.

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel