Como Criar Filtro Avançado com Macro no Excel

AGRADEÇA AO AUTOR COMPARTILHE!

Este tutorial que irei explicar é mais voltado aos usuários finais, que utilizam no seu dia-a-dia o pacote Office.

Vou explicar como fazer um filtro de pesquisa com macros. Estou colocando este tutorial aqui para ajudar os que realmente necessitam. A partir deste tutorial, cada um pode criar seu filtro customizado a gosto.

Como iremos trabalhar com macros neste filtro, o primeiro passo a fazer é habilitar a guia Desenvolvedor. Não se preocupem que aqui não iremos trabalhar com programação.

Com estou usando o Microsoft Office 365, esta guia já está habilitada, mas, dependendo da instalação e da versão do Office instalado, será necessário habilitar a Guia Desenvolvedor para usarmos aqui.

No Microsoft Excel 2007, iremos no Botão Office, situado no canto superior esquerdo do Excel e em seguida clique em Opções do Excel. Na janela de opções que irá aparecer, deixe marcada a opção Mostrar guia Desenvolvedor na Faixa de Opções.

guiadesenvolvedor4

Já para habilitar esta guia no Microsoft Office 2013 e 365, deveremos clicar no Menu Arquivo e depois em Opções como é mostrado nas imagens a seguir.

GUIADESENVOLVEDOR1 GUIADESENVOLVEDOR2

Aparecerá as opções do Excel, conforme a imagem abaixo. Então clicaremos em Personalizar Faixa de Opções e então deixar selecionada a opção Desenvolvedor e em seguida clicar em OK. Pronto, irá reparar que a guia Desenvolvedor estará visível na tela do Excel.

GUIADESENVOLVEDOR3

Agora vamos ao passo a passo para criarmos o filtro de pesquisa avançado.

Reparem na imagem abaixo que já tenho uma tabela de preços incluída. Esta tabela foi  tirada da internet a qual é disponibilizada de graça. Já deixei esta tabela como exemplo para ajudar na explicação deste tutorial.

Reparem que tem o Título (Cabeçalho) nas colunas que devem ser adicionados na planilha, pois, sem eles, o filtro não terá efeito algum. Na sequência irão notar o porquê da importância do cabeçalho.

filtro1

No lado esquerdo da planilha (colunas A, B e C), onde se encontra a tabela de preços, será a fonte da pesquisa e no lado direito (colunas F,G e H), colocaremos o mesmo cabeçalhos e será onde filtraremos a pesquisa e onde iremos mostrar os resultados. O layout deve ficar conforme as imagens a seguir. Notem que o tamanho das colunas de ambos os lados deve estar iguais para que o filtro consiga mostrar adequadamente os resultados.

filtro2

filtro3

Agora, vamos criar um filtro de pesquisa. Para isso clicaremos na guia Dados, selecionaremos toda a tabela que será usada para a pesquisa (no caso aqui toda a tabela de preços que está nas colunas A,B e C). Não esquecer que as células onde se encontram os Títulos (Cabeçalhos) devem ser selecionados também. Após selecionarmos toda o conteúdo das colunas A,B e C, clicaremos em Avançado conforme o assinalado.

filtro5

Para fácil entendimento, selecionei a tela inteira abaixo para verificarem o que estamos selecionando.

Ao clicarmos em Avançado, aparecerá uma janela no centro onde devemos especificar o critério do filtro. Deixaremos a opção Copiar para outro local clicada, pois queremos que o resultado seja mostrado em outro local que não seja as mesmas colunas da tabela de preços. A opção Intervalo da lista já está com as células que sofrerão a pesquisa, pois, são as que selecionamos antes de clicarmos em Avançado.

filtro6

Clicaremos agora no campo referente a opção Intervalo de critérios e depois selecionaremos com o mouse as células F1 a H2 como é mostrado na imagem logo abaixo. Sempre lembrando que os Títulos devem ser selecionados também.

filtro7

Agora clicaremos no campo referente a opção Copiar para e novamente com o mouse iremos selecionar outras células. Aqui no caso selecionaremos somente os cabeçalhos que estão nas células F5 ao H5. Não selecionaremos mais células, pois, aqui será mostrado o resultado da pesquisa e que pode ser um resultado pequeno ou extenso dependendo do filtro da pesquisa.

filtro8

Ao clicarmos em OK, apresentará o resultado da pesquisa abaixo das células F5, G5 e H5. Só relembrando, nas colunas A, B e C é a tabela de preços que contém os dados que sofrerão a pesquisa. Nas células F2, G2 e H2 será onde digitaremos o que desejamos pesquisar dentro da tabela de preços e a partir da célula F6 serão mostrados os resultados da pesquisa.

Como não digitamos nada para filtrar a pesquisa, mostrou toda a tabela nas células referente aos resultados da pesquisa.

filtro9

Para não ficarmos fazendo todo este processo novamente quando quisermos pesquisar algum dado dentro deste conteúdo, iremos criar uma macro e adicioná-la a um botão. Quando quisermos pesquisar algum conteúdo, basta clicar neste botão para aparecer os resultados.

Vamos clicar na guia Desenvolvedor e depois clicar em Gravar Macro.

filtro10

Irá aparecer a janela Gravar Macro. Colocaremos um nome para esta macro, selecionaremos as teclas de atalho e deixaremos selecionada a opção Esta pasta de trabalho para o item Armazenar macro em em em seguida clicaremos em OK.

Estamos selecionando a opção Esta pasta de trabalho, pois esta macro só funcionará na planilha ativa.

filtro11

Após clicarmos em OK, começamos a gravar a macro e tudo que fizermos a partir de agora nesta planilha será gravado na  macro, então vamos seguir esta sequência agora para que a macro seja configurada perfeitamente.

Clicaremos na  guia Dados e depois novamente em Avançado.

filtro12

Aparecerá a tela de critérios do filtro que já havíamos configurado anteriormente, porém, selecionaremos novamente a opção Copiar para outro local devido ser a única opção desta tela de critérios (que voltou ao estado original) e depois clicaremos em OK.

filtro13

Na sequência voltaremos para a Guia Desenvolvedor e clicaremos na opção Parar Gravação.

filtro14

Agora que a macro está criada e gravada, iremos criar um botão para que sempre que eu queira pesquisar algo eu clique nele ao invés de fazer todo aquele processo de filtro novamente.

Para isso, continuando ainda na guia Desenvolvedor, clicaremos na opção Inserir e depois no componente Botão (Controle de Formulário), que é a primeira opção dos componentes mostrados.

filtro15

Após clicar no botão, irei desenhá-lo no lado direito da planilha, localizado a partir da coluna I como é mostrado com a seta.

filtro16

Ao terminar de dimensionar o seu tamanho, aparecerá a janela abaixo para atribuir uma macro para este botão. Selecionaremos a macro Filtro, anteriormente gravada, em Descrição deixaremos a opção Esta pasta de trabalho selecionada e depois clicarmos em OK.

filtro17

filtro18

Agora que o botão está criado, clicaremos com o botão direito do mouse em cima dele e depois clicaremos em Editar texto para renomearmos o botão.

filtro19 filtro20

Pronto! A planilha está criada. Vou digitar, por exemplo, na célula G2 o nome ADAPTADOR e depois clicarei no botão Filtrar.  A partir da célula F6 aparecerão todos os resultados que se iniciem com o nome ADAPTADOR. Irá aparecer o código do produto, o nome e o valor correspondente.

filtro22

Outro exemplo seria digitar em F2 o critério >40000 e depois clicar em Filtrar. Irá aparecer todos os produtos com os códigos dos produtos maiores que 40000.

filtro23

Agora que a planilha está criada, clique no menu Arquivo e depois em Salvar como. Coloque o nome do arquivo e selecione no Tipo a opção Pasta de trabalho habilitada para Macro do Excel.

filtro23

Pronto! Espero ter ajudado e que estas dicas sejam úteis para os que necessitam.

Lembrando ainda que criei este tutorial mais focado nos usuários finais, mas este também pode ser utilizado por profissionais de TI que necessitem.

Abraços e até a próxima.

AGRADEÇA AO AUTOR COMPARTILHE!

20 Comentários

Mariana
3

Bom dia Luciano!

Obrigada pelo tutorial.

Segui os passos a passos e funcionou, com exceção de quando tento ocultar a planilha de dados ou colocar a planilha em outra aba.

A minha planilha é um catálogo de produtos em cada linha possui uma imagem desse produto. Quando eu faço o filtro como ensinado aqui ele funciona perfeitamente.

Mas se tento ocultar as colunas da tabela de dados ou colocar os dados em outra tabela o filtro não puxa a imagem, somente o texto das outras células.

Tem alguma forma de consertar ou contornar isso?

Obrigada.

William Alves
4

Bom dia!
Muito bom esse tutorial sobre filtro avançado com macro no Excel, mas tenho uma dúvida:

Existe um meio de pesquisar por uma palavra que não esteja somente no início da frase?

Exemplo: na descrição “Adaptador Som USB”, como faço para pesquisar por “Som” ou “USB”?
Pois o filtro em questão não retorna nada quando a pesquisa não é por palavras que não estão no início da descrição.
Muito obrigado.

André Pereira
6

Como faz para pesquisar dois critérios?
Exemplo:

Tenho uma tabela de jogos/confrontos:

Data horário mandante x visitante
02/mai 17h Metodista x Taubaté
05/mai 18h Santos x Metodista
10/mai 20h Pinheiros x Osasco

Queria filtrar somente os jogos da “Metodista”, por exemplo.

Muito obrigado pela atenção

André Pereira

Armin
7

Muito bom esse tutorial. Tenho uma pergunta:
Tenho uma tabela com clientes, datas e valores – como faço para filtrar um cliente que atingiu um limite estipulado de crédito, em um determinado período?
Agradeço antecipadamente por um retorno.
Armin.

Dayane Rodrigues
8

Excelente tutorial…Parabéns!!! Consegui fazer de primeira seguindo o passo-a-passo.

Perfeito!!

cRIS
9

Bom dia!
Muito bom esse tutorial sobre filtro avançado com macro no Excel, mas tenho uma dúvida:

Existe um meio de pesquisar por uma palavra que não esteja somente no início da frase?

Exemplo: na descrição “Adaptador Som USB”, como faço para pesquisar por “Som” ou “USB”?
Pois o filtro em questão não retorna nada quando a pesquisa não é por palavras que não estão no início da descrição.
Muito obrigado.

Márcio Almeida
13

Meu amigo, consegui fazer os procedimentos no excel e ficou perfeito. Porém, enviei em meu email do trabalho, mas aqui no trabalho é usado o libreoffice. Ai não funciona. Como faço para funcionar no libreoffice, ou então criar no próprio libreoffice? Grato desde já.

Luiz Carlos
16

Olá, como vai?

Sobre o filtro avançado com macro, estou tendo dificuldades para extrair dados com critérios específicos, pois o retorno da pesquisa é o próprio banco de dados, sistematicamente, mesmo que eu busque apenas um critério. Estou utilizando Excel 2010.
Por favor, gostaria de uma ajuda nesse sentido.

Luiz Carlos Ebina, Araçatuba-SP

Agradeço.

Glauber
17

Boa tarde,

Segue abaixo o código para filtro avançado.
‘Parâmetros do filtro na planilha excel:
‘Campo 1:Refere-se ao banco de dados inteiro. no código (“A1:B4″)
‘Campo 2: Refere-se aos campos com o critérios. no código (“E1:E2″)

‘Código VBA para filtro avançado:
Range(“A1:B4″).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(“E1:F2″), Unique:=False

ou criando com variáveis:

‘Código VBA para filtro avançado:
Dim bd, critérios As String
bd = “A1:B4″
critérios = “E1:F2″
Range(bd).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(critérios), Unique:=False

Qualquer dúvidas me procurar no face – Glauber Braga

Vinicius
18

Boa tarde fiz em uma tabela com 400 linhas deu certo, depois fiz pra uma tabela de 2400 linhas e não deu certo sabe me dizer porque ?

Lanna
19

Luciano, muito obrigada pelo tutorial!
Porém este filtro não me atende em um ponto. Neste mesmo exemplo que você utilizou, se eu filtrar com a palavra USB no lugar de ADAPTADOR, não aparece nada na lista. Este filtro só reconhece a primeira palavra. Você sabe me dizer se há uma solução para este problema?
Obrigada!!

Patricia Senatore
20

Muito bom seu tutorial! Eu estou querendo fazer com que a pesquisa seja executada quando eu pressionar o ENTER para não precisar clicar no botão toda vez. Como eu faço?

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">