Aplicar filtro automático em lista com VBA Excel
Especialista em Excel

Aplicar filtro automático em lista com VBA Excel
Objetivo: Aplicar filtro automático em uma lista de dados a partir de um resumo Excel.
Objetivo do artigo
Neste artigo é demonstrado um pouco da forma como podemos interagir com a planilha através dos Eventos criados em VBA.
A implementação feita nesta planilha permite que ao dar um duplo clique sobre o nome do vendedor a lista Excel abaixo seja automaticamente filtrada.
E da mesma forma ao clicar na palavra "Limpar" o código Excel VBA faz automaticamente a limpeza dos filtros que haviam sido aplicados.
Criando a lista
A primeira coisa que deve-se fazer é a lista Excel, para isso basta dispor os dados em suas devidas colunas, no caso usamos, dia, mês, ano, valor e vendedor, sendo que o filtro será aplicado automaticamente conforme o vendedor.
Os dados não devem ser nunca misturados com outros, nestas colunas a partir dos seus cabeçalhos somente deverão existir os tipos de dados que se dispões no cabeçalho da tabela Excel.
Criando o resumo
O resumo foi criado colocando o cabeçalho vendedor e total. No campo de vendedor foram dispostos os nomes dos vendedores e no campo Total foi colocada a fórmula Excel Somase: =SOMASE(E8:$E$52400;D2;D8:$D$52400).
Esta fórmula realiza a soma das vendas de cada vendedor da lista, ignorando o filtro. Você pode ver mais em: http://guiadoexcel.com.br/funcao-somases-varias-condicoes-para-soma, inclusive com uma vídeo-aula.
Além disso foi escrito na célula B2 a palavra Limpar, sem nada a acrescentar por enquanto.
Aplicar o filtro automático em lista com VBA Excel
Agora para aplicar o filtro automaticamene foi adicionado o seguinte código VBA ao evento de duplo clique da planilha.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4 And Target.Row >= 2 And Target.Row <= 5) And Target.Value "" Then
ActiveSheet.Range("$A$1:$E$518").AutoFilter Field:=5, Criteria1:=Target.Value, _
Operator:=xlAnd
Else
If Target.Address = "$B$1" Then
Application.EnableEvents = False
Range("D7").Select
Selection.AutoFilter
Selection.AutoFilter
Application.EnableEvents = True
End If
End If
End Sub
Este código realiza a aplicação do filtro se a coluna for a D e se a linha estiver entre a segunda e a quinta linha e se houver valor para aplicar o filtro. Deste modo só serão filtrados os dados na lista Excel se for clicado nesta coluna.
Logo abaixo da primeira verificação é aplicado o filtro utilizando o conteúdo da célula que foi clicada diretamente sobre a coluna E que é a coluna de vendedor.
Caso a célula que foi clicada não atenda os primeiros critérios o VBA realiza uma segunda verificação, para identificar se foi clicado na célula B1, e neste caso realizar a limpeza do filtro da lista de dados.
Conclusão filtro automático em lista com VBA Excel
Trabalhar com eventos no Excel VBA permite que tenhamos uma maior iteração com a planilha possibilitando inúmeras variações que podem agilizar a vida do usuário.
Download lista Excel VBA
Você pode fazer o download desta planilha e vê-la funcionando na prática clicando no botão abaixo.
Abraço
Marcos Rieper
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90





