VBA – Auto Filtro

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on June 22, 2023

No VBA, você pode usar o AutoFiltro do Excel para filtrar um intervalo de células ou uma tabela do Excel.

Observação: se você quiser saber como usar um filtro avançado no VBA, clique aqui: Filtro avançado VBA

Criar o AutoFiltro no VBA

Primeiro, demonstraremos como fazer o AutoFiltro de um intervalo, para que o usuário possa filtrar os dados. Os dados que usaremos nos exemplos estão na Imagem 1:

exemplo tabela dados produto

Aqui está o código para criar o AutoFiltro:

Planilha1.Range("A1:E1").AutoFilter

Para ativar o AutoFilter, precisamos especificar o cabeçalho do intervalo, no nosso caso A1:E1, e usar o método AutoFilter do objeto Range. Como resultado, nosso intervalo de dados tem filtros ativados:

visal autofiltro acionado

Imagem 2. AutoFiltro ativado para os dados

AutoFiltro com Parâmetros de Campo e Critérios

O VBA também permite que você filtre automaticamente um determinado campo com determinados valores.

Para fazer isso, é necessário usar os parâmetros Field e Criteria1 do método AutoFilter. Neste exemplo, queremos filtrar a terceira coluna(Produto) somente para o Produto A. Aqui está o código:

Planilha1.Range("A1:E1").AutoFilter Field:=3, _
                                 Criteria1:="Produto A"

No parâmetro Field, você pode definir o número da coluna no intervalo (não no Excel), enquanto em Criteria1 você pode colocar o valor que deseja filtrar. Depois de executar o código, nossa tabela terá a seguinte aparência:

filtro produto a

Imagem 3. AutoFiltro com campo e critérios

Como você pode ver, somente as linhas com o Produto A na terceira coluna são exibidas no intervalo de dados.

AutoFiltro com Campo e Vários Valores de Critérios

Se quiser filtrar um campo com vários valores, você precisará usar o parâmetro Operator do método AutoFilter. Para filtrar vários valores, você precisa definir Operator como xlFilterValues e também colocar todos os valores de Criteria em uma Array. Neste exemplo, filtramos a coluna Produto para o Produto A e o Produto B. Aqui está o exemplo de código:

Planilha1.Range("A1:E1").AutoFilter Field:=3, _
                                 Criteria1:=Array("Produto A", "Produto B"), _
                                 Operator:=xlFilterValues

Quando executamos o código, obtemos apenas linhas com Product A e Product B, como você pode ver na Imagem 4:

filtrando produtos ab

Imagem 4. AutoFiltro com vários valores de critérios

Intervalo de Dados do AutoFiltro com Vários Critérios

Se você quiser filtrar um campo com vários critérios, deverá usar os parâmetros Criteria1 e Criteria2 e também o operador xlAnd.

No próximo exemplo, filtraremos a primeira coluna(Data) para datas em dezembro de 2018. Portanto, temos dois critérios: uma data maior que 01/12/18 e menor que 31/12/18. Este é o código:

Planilha1.Range("A1:E1").AutoFilter Field:=1, _
                                 Criteria1:=">=12/01/2018", _
                                 Operator:=xlAnd, _
                                 Criteria2:="<=12/31/2018"

Quando executamos o código, você pode ver que somente as datas de dezembro são exibidas no intervalo de dados:

filtrando mes dezembro

Imagem 5. AutoFiltro com vários critérios para o campo

Os Valores do Parâmetro Operator do Método AutoFilter

Na próxima tabela, você pode ver todos os valores possíveis do parâmetro Operator do método AutoFilter e suas descrições:

Operator Descrição
xlAnd Inclui vários critérios – Critério 1 e Critério 2
xlOr Inclui um dos critérios múltiplos – Critério1 ou Critério 2
xlTop10Items Filtra um determinado número de valores mais bem classificados (número especificado em Critério 1)
xlBottom10Items Filtra um determinado número de valores com a classificação mais baixa (número especificado no Critério1)
xlTop10Percent Filtra uma determinada porcentagem dos valores mais bem classificados (% especificado em Critério1)
xlBottom10Percent Filtra uma determinada porcentagem dos valores com classificação mais baixa (% especificada em Critério1)
xlFilterValues Inclui vários valores de critérios com Array
xlFilterCellColor Filtra células por cores
xlFilterFontColor Filtra células para cores de fontes
xlFIlterIcon Ícones de filtros
xlFilterDynamic Filtra valores dinâmicos
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA