Aplicar filtro automático em lista com VBA Excel
Como aplicar filtro automático em uma lista de dados a partir de um resumo Excel, utilizando VBA e eventos de VBA em planilhas 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
Planilha de Controle Financeiro no Excel
Tenha um controle bonito e completo do seu financeiro.
- Categorias e subcategorias já configuradas
- Planilhas separadas por tabela (configuração, lançamentos, resumo)
- Personalize com suas próprias categorias e ícones
Este conteúdo foi útil?
Continue lendo
Lista com Filtro de Dados Automático 2
No dia 8 deste mês fiz uma planilha com filtro automático de dados. Realizei algumas alterações nela para que outros tipos de dados também possam ser filtrados automaticamente, tai

Filtro automático com data no Excel matricial
Objetivo: Demonstrar como utilizar o filtro automático com data no Excel utilizando fórmulas Índice, Corresp, Menor, SE e matricial.

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.


