FILTRO AVANÇADO EXCEL COM MACRO

Neste artigo você aprenderá como utilizar o filtro avançado, e mais, como utilizá-lo com uma macro de Excel para tornar o filtro automático.

Para isso vamos conhecer como funciona o filtro avançado do Excel:

1. Faça download do arquivo base clicando no botão abaixo:

2. Com o arquivo que você baixou copie o cabeçalho da lista a partir da célula H1.

Tabela - Cabeçalho

Tabela – Cabeçalho

3. Para criar um filtro avançado você deve saber que:

  • A planilha deve possuir uma lista com cabeçalhos, esta lista é a fonte aonde serão aplicados os filtros;
  • Deve haver uma parte da planilha com os mesmos cabeçalhos, os cabeçalhos devem ser exatamente iguais, pois é abaixo destes campos que você colocará os critérios, que podem ser fórmulas que retornem valores da lista, pode ser valores utilizando os indicadores >, <, <>, =, como por exemplo >1.

4.Digite na célula H2 a palavra João,  na coluna valor da célula L2 digite >100.

5.Clique na guia Dados e no botão Avançado.

6.Na tela que segue, você terá a parametrização do filtro avançado.

  • No primeiro campo Intervalo da lista,  selecione a lista de dados: $A$1:$F$831
  • No segundo campo, Intervalo de critérios, selecione o intervalo de critérios com o cabeçalho: $H$1:$M$2
  • Como queremos que  a lista seja filtrada em um outro local clique na ação Copiar para outro local
  • No campo Copiar para selecione o intervalo $H$7:$M$7

7.Clique no botão Ok, note que os dados foram filtrados logo abaixo do filtro de dados conforme especificado.

Pronto! Terminamos a a primeira parte do tutorial, entendendo como funciona o Filtro Avançado.

O problema é que sempre que você for filtrar terá que repetir estas ações.

Para resolver este problema vamos fazer uma macro para gravar as ações de filtragem de dados.

Criando uma macro para automatizar o filtro avançado

  • Clique na guia Desenvolvedor
  • Clique no botão Gravar Macro
  • Digite no campo Nome da Macro Filtrar, na tecla de atalho digite A e em Armazenar Macro em: selecione Esta pasta de trabalho.

  • Clique em OK. Cuidado, a partir deste momento todas as operações que você fizer serão gravadas, por isso não clique em qualquer lugar na planilha.
  • Clique em uma célula da lista, por exemplo F1 e clique na guia Dados em Avançado
  • Verifique se o intervalo de dados selecionado corresponde á $A$1:$F$831, senão corrija-o.
  • No intervalo de critérios verifique se está apontando para $H$1:$M$2, senão corrija.
  • Marque novamente a opção Copiar para outro local e verifique se o intervalo é $H$7:$M$7.
  • Clique em OK.
  • Volte na guia Desenvolvedor e clique em Parar Gravação.
  • Agora clique na guia Inserir e selecione o botão Formas e escolha a forma de Retângulo e desenhe-a ao lado dos critérios, mais ou menos á partir da coluna N.
  • Selecione a forma criada e Digite Filtrar.
  • Clique com o botão direito sobre o retângulo e selecione a opção Atribuir Macro.
  • Na janela que segue selecione a macro criada que tem o nome Filtrar.

Pronto! Para testar altere alguma propriedade do filtro, como por exemplo digite Ana no lugar de José e clique no botão Filtrar.

Faça o download do arquivo clicando no botão abaixo:

Quer aprender Excel Avançado ou Excel VBA? Conheça os nossos cursos, os melhores do mercado a preços baixíssimos e garantia de aprendizado. Cursos Guia do Excel.

excel vba

SISTEMA DE GESTÃO CONTA AZUL

O Excel é uma plataforma de trabalho muito aberta para servir ao gerenciamento de dados de uma empresa, dado a complexidade e a integração entre as diversas áreas que a compõe. Mas é a melhor para analisar suas informações.

Com a intenção de atender as micro e pequenas empresas a Conta Azul criou um software de gestão aonde você tudo o que você precisa para gerir a sua empresa: Estoque, Vendas, Financeiro e ainda emite Nota Fiscal Eletrônica, tudo isso em um sistema simples de trabalhar, que você acessa pela internet, não há a necessidade de comprar servidores e preocupar-se com backup e atendimento através de 0800.

O preço da ferramenta também chama a atenção, sendo um preço mais do que justo para se ter o controle dos dados e a geração de informações para a análise do seu negócio.

ContaAzul é um software de gestão financeira e fiscal para micro e pequenas empresas. Ele funciona 100% em plataforma web, não necessitando nenhuma instalação ou atualização. Você pode acessar de qualquer lugar e não tem necessidade de comprar nova licença caso troque de computador.

  O Guia do Excel recomenda o Conta Azul no gerenciamento de sua empresa.
Use QR-Code to get this permaking using your Smartphone. QR Code for FILTRO AVANÇADO EXCEL COM MACRO

75 Comentários

  1. Afonso disse:

    Legal a dica Rieper… Essa eu nunca tinha utilizado… Valeu! Abraço.

  2. Dani disse:

    é isso ai Rieper muito legal

  3. Roberto disse:

    O Rieper manja de mais !!!
    é o melhor que já vi.
    Parabéns!!
    continue assim.

  4. clellys disse:

    meu grande!!! bm dia!! esse cédigo é show.. mais… estou com uma necessidade!! estou querendo filtrar dentro de um intervalode datas, nessa mesma sua planilha.. teria como construirmos outro critério para criarmos outro campo de datas? comto com seu apoio!!!!!

  5. [...] Neste painel você seleciona um dia no calendário e uma situação que são utilizadas como parâmetros para o recurso de filtro avançado. [...]

  6. wilson disse:

    MArcos Riper grande tutorial, Otimo mesmo, uma duvida que surgiu e ;

    Consegue colocar doi criterios de data na pesquisa ?

    Ex: >=01/02/2011 até <=10/02/2011

    NOTA FABRICANTE Data
    10267 SIMM DO BRASIL 01/02/2011
    10268 SIMM DO BRASIL 02/02/2011
    10256 SIMM DO BRASIL 03/02/2011
    10263 SIMM DO BRASIL 04/02/2011
    47677 NOKIA DO BRASIL TECNOLOGIA LTDA 05/02/2011
    10292 SIMM DO BRASIL 06/02/2011
    10286 SIMM DO BRASIL 07/02/2011
    10282 SIMM DO BRASIL 08/02/2011
    10283 SIMM DO BRASIL 09/02/2011
    10293 SIMM DO BRASIL 10/02/2011

  7. wilson disse:

    Rieper obrigado pela resposta, tem alguma forma de colocar esta pesquisa entre datas no formato que utilizamos >= 01/12/2010 ? pois a planilha usam varias pessoas e pode confundir na utilização. e possivel que esta busca seja feita com varias Notas ao mesmo tempo.

    EX. Notas
    12
    13
    14
    e me retornar todas elas?

    E me retornar o intervalo das datas tambem ?

    EX :

    Intervalo entre >01/02/2010 e <10/02/2010 numa unica pesquisa

    • Marcos Rieper disse:

      Boa noite Wilson,

      Você pode ocultar a coluna na qual ele efetua o filtro, digitar o valor em outra coluna e utilizar a concatenação pra chegar neste resultado.

      Exemplo: =”>=”&MÊS(A2)&”/”&DIA(A2)&”/”&ANO(A2)

      Abraço

      Marcos Rieper

  8. Neto disse:

    Boa tarde Marcos,

    por favor, eu gostaria de fazer com que o banco de dados ficasse em uma aba, e a filtragem e resultado em outra, assim o usuario so vai ver o resultado que quer e nao todos os dados juntos. Entende?

    Obrigado!

  9. Luciano disse:

    O questionamento do Neto do dia 23/02/11, sobre o banco de dados ficar em uma aba e a filtragem em outra, seria possível nos mostrar como pode ser feito? Por favor.

    Obrigado!

  10. Luciano disse:

    Marcos,

    Muito obrigado pela ajuda. Valeu por compartilhar o teu conhecimento.

    Abraço,

    Luciano.

  11. Luciano disse:

    Marcos,

    Neste filtros, há como colocar um “listbox”….. estilo dos próprios filtros do excel….. mas buscando a informação do banco de dados para os filtros?

    • Marcos Rieper disse:

      Bom dia Luciano,

      Acredito que dá pra fazer sem problemas, só alterando o objeto para combobox, alterando o intervalo de entrada e o vínculo da célula e adaptando o código fonte.

      Abraço

      Marcos Rieper

  12. Luciano disse:

    Marcos boa tarde,

    Você teria um exemplo que poderia nos passar, por favor

    Grato,

    Luciano

  13. ELISANGELA disse:

    a função subtotal(9; ) não esta calculando automaticamente excluindo a célula oculta nesse comando como deve resolver esse problema ?

  14. Luciano disse:

    Marcos, você teria algum exemplo sobre o questionamento do dia 20/03?

  15. Lenin disse:

    Muito bom isso…

    Me ajudou demais…

  16. Bittous disse:

    Estou com uma que talvez pudessem me auxiliar, estou utilizando filtro em minhas colunas para selecionar fornecedores, acontece que já tenho mais de 40 e meu filtro só está funcionando até a linha 26. Sabe como expardir a abrangência, fazendo assim ir até o final da tabela??

    Grato pelo auxílio.

  17. Mary disse:

    Marcos boa tarde!
    tem como padronizar para que o filtro selecione apenas dados iguais e não que contenham? Por ex: Quero selecionar apenas o nome Maria das Dores, mas o filtro me traz todos os que contém Maria….

  18. Marcelo disse:

    gostaria de saber como crio uma consulta que informe por exemplo, o valor total (soma) que cada cliente da vendedora ana comprou.

  19. Luiz Fernando disse:

    ola pessoal, eu estou precizando d um favor, essa mesma macro que foi feita para auto filtro, eu queria que ela pesqueza-se os nomes mas tino, eu quero acha todos os dados que contenha a letra “na” na coluna “a”, dessa forma que esta eu só conseguigo fazer o filtro com o nome inteiro….
    por favro desde ja agradeço…

  20. Fernando Gapo disse:

    já utilizei o filtro avançado e é ótimo. gostaria de saber se a partir destes dados filtrados como posso proceder a alterações, isto é: filtro o nome de uma pessoa por ex: Fernado e verifico que está mal escrito. Há forma de alterar o dado da filtragem e alterar a sua origem?

    Um abraço

  21. thiago disse:

    Cara, nunca tinha comentado em um “tutorial” eu estava quebrando a cabeça aqui para lembrar como se fazia este tipo de trabalho, você ensinou de uma forma simples, clara e objetiva. PArabens!!!

  22. PAULO MASCARENHAS disse:

    marcos, boa tarde.
    Neste filtro, eu utilizo bastante na empresa, mas surgiu a necessidade de filtrar entre diferente “planilhas” (abas)
    é possivel utilizano o filtro avançado? seria uma planilha apra cada dia , exemplo 01..02…03…04…05…06…etc…
    E no filtro deveria varrer todas elas….

  23. Gilberto disse:

    Caro Marcos; muito útil a apresentação desse tópido, o que eu gostaria de saber se é possível fazer a utilização do filtro com apenas uma parte do texto; ou seja, se digitei “jo”, foi me apresentado “josé” e “joão”; mas se digito “sé” ou “ão”; não é apresentado nenhum resultado, isso seria possível de ser apresentado. Antecipadamente, obrigado!

  24. Gilberto disse:

    Boa noite Mestre. Valeu a dica; estou usando essa função com um arquivo Diário onde possuo colunas com datas, valores, históricos, códigos de contas em alfa-numérico. E sua colocação para minha dúvida foi muito útil. Obrigado!

  25. Amarildo Reis disse:

    Caro Marcos, primeiro parabéns pelo tutorial, show de bola, me ajudou muito. Estou com uma dúvida, e acho que é simples, não estou conseguindo colocar o parâmetro para filtrar um intervalo, ou seja, quero filtrar entre >1 e 1 na linha superior e <=9 na linha inferior, conforme demonstrou acima com data, porém não funciona. Pode me explicar por favor como eu faria? Obrigado.

  26. Guilherme disse:

    Muito obrigado, pra quem nunca fez está excelente…

  27. Luciano disse:

    Marcos sobre sua resposta abaixo você teria um exemplo para fornecer?

    Bom dia Luciano,

    Acredito que dá pra fazer sem problemas, só alterando o objeto para combobox, alterando o intervalo de entrada e o vínculo da célula e adaptando o código fonte.

    Abraço

    Marcos Rieper

  28. Mauricio disse:

    Como faço para retirar de uma planilha de banco de dados todos os emails com endereço @hotmail ?
    Obrigada

  29. Daniel disse:

    Oi Rieper,

    Parabéns pelo artigo e principalmente por disseminar o conhecimento.

    Uma dúvida… existe como fazer filtro apenas por parte de palavras, por exemplo, na tua planilha tu tens “João” e “José”, seria possível achar todos que contenham “Jo” no vendedor?

    Obrigado, abraço

    Daniel

  30. fabia disse:

    Por favor,preciso urgente fazer um filtro automatico em tabela dinamica,
    O que faco????
    Me ajudem Por favor…

    • Marcos Rieper disse:

      Bom dia Fábia,

      Tem como fazer de forma a ficar conforme o do artigo, mas demandaria programação VBA, no entanto você pode usar o filtro do campo Filtro de relatório da tabela dinâmica um filtro bastante completo.

      Abraço

      Marcos Rieper

  31. Marcos disse:

    estou tentando fazer um filtro avançado onde, a mesma celula contem data e hora ex:
    Manifest Date Manifest Date
    >=2012-04-30 09:25:16 <=2012-05-01 5:00
    se alguem puder me ajudar…..

  32. mario disse:

    olá! parabéns pelo site! gostaria de pedir p/ postar um exemplo de filtro com caixa de texto, tipo, vc digita o texto na caixa de texto e já aparece logo abaixo somente o solicitado… tipo este aqui deste site: http://guiadoexcel.com.br/planilha-com-filtro-automatico

    EU NÃO CONSEGUI ENTENDER… PRECISAVA DE UMA MANEIRA MAIS SIMPLES PRA POR ESTA FUNÇÃO EM MINHA PLANILHA…. ADAPTÁ-LA… OBRIGADO!!

  33. silmara disse:

    Olá,pessoal
    estou tentando fazer um filtro automatico em uma planilha com tabela dinamica,na planilha tem uma tabela onde eu quero colocar um campo para você digitar um nome dos relacionados e quando você digitar o nome aparecetodos os dados do mesmo e se eu quiser ver todos é só digitar todos.e agora pessoal como faço???por favor me ajuda…
    No aguardo.

  34. silmara disse:

    Boa-noite
    Marcos,

    Eu usei modelo que você disse e eu tenho um total de 5 colunas,porém a coluna com os nomes não realiza o filtro e a caixa de texto fica meio riscada e me apresenta um erro 1004.
    Te enviei a planilha pelo seu e-mail do gmail,você pode por favor me ajudar por favor.

    Grata
    No aguardo.

  35. Felippe disse:

    Olá Pessoal, bom dia!

    emcima deste filtro, sera que existe alguma possibilidade de fazer alteração?? Ex. no filtro puxei um determinado produdo com X qnd., e alterar essa qnt, e na proxima consulta q eu fazer esta com a qnt que eu alterei.

    Grato..

  36. RIan disse:

    Amigo,
    eu to precisando criar uma filtragem do tipo que eu selecione o nome da empresa em cima e automaticamente embaixo em uma caixa de texto traga o nome fantasia da mesma…
    outro exemplo..
    seleciono em cima o nome da pessoa e embaixo ja da a data do aniversario dela… tem como?
    abraçao

  37. JANE disse:

    Boa noite
    Como faço para criar pu utilizar algum comando, em uma lista de aniversário e preciso somente os aniversarientes do mês de agosto, como exemplo;
    Aguardo resposta
    OBS : sem usar filtro ou tabela dinâmica.

  38. Luis disse:

    Criei uma planilha com 4 colunas: Classificação, código, quantidade e Descrição. O filtro é apenas para trazer as quantidades maiores que 1. Quando aplico o filtro avançado, ele funciona perfeitamente, mas quando tento gravar a Macro, executando exatamente o mesmo procedimento, ela não funciona.
    Segui as instruções do tópico, e não consegui fazer a macro funcionar. Pode me ajudar? Grato!

  39. Anderson disse:

    Muito boa esta dica. Parabéns Rieper, você mostrou que conhece muito mesmo!. Você por acaso sabe como fazer para incluir no filtro avançado o comentário incluso na célula e aparecer no local indicado?

  40. Arlete disse:

    Prezado

    Consigo fazer uma planilha usando dois critérios ao mesmo tempo? Exemplo: Selecionar os produtos que ao mesmo tempo sejam os mais vendidos e os mais lucrativos.
    Grata.

  41. Maiky disse:

    Consegui fazer e funcionou perfeitamente.
    Porém o problema é outro, na seleção do intervalo de informações, é algo fixo, ou seja, toda vez que for acrescentado um cadastro terei que refazer todo processo?

  42. Herbert disse:

    Muito obrigado. A sua ajuda foi muito mais didática do que a da Microsoft.
    Segui passo a passo e deu certíssimo.

  43. Javale disse:

    Faço das palavras do Herbert (14/12/2012 às 13:55) as minhas.
    A sua didática e conhecimento é infinitamente melhor e maior, respectivamente, que as dos “mestres” da Microsoft.
    Cordialmente,

  44. Tarcisio disse:

    Muito bom, obrigado!!!

  45. Tarcisio disse:

    Muito bom, obrigado!!

    No meu caso, um dos parâmetros seria o destino dos dados. Pra resolver isso, bastou abrir o código da macro e mudar o destino para uma variável.

    Me ajudou muito, vou continuar acessando o site sempre!

  46. Tadeu disse:

    Primeiro parabéns pelo post! Tenho um “problema” o filtro funciona muito bem. Entretanto, gostaria de editar os valores e colocá-los devolta na mesma posição de linha dentro do banco.
    Ou ainda, identificá-los, “jogá-los”de volta para as células que utilizei para cadastrá-los e por fim salvá-los na mesma posição. Tem alguma sugestão?

    Obrigado!

  47. Paulo S disse:

    Estou precisando de extrair dados de uma planilha que some um determinado valor. por exemplo quero extrair vários valores que a soma seja 52.250. Esta informação seria de grande utilidade para conciliação de valores.
    alguem consegue me ajudar ?

  48. Anderson disse:

    Olá!

    A macro para o executar o filtro avançado está rodando,
    porem qdo a base de dados do filtro é muito grande, o filtro é feito mas na sequência qdo a macro copia e tenta colar em outra planilha, a base é colada com todas informações sem o devido filtro… não sei como resolver isso, alguém pode ajudar?

    Grato

  49. Ueritom disse:

    Grande dica, Marcos..eu queria saber como fazer para buscar com relação a datas apenas por mês, independente de ano. Ex: uma lista de nomes com datas de nascimento. Eu queria filtrar apenas os que nasceram no mês X. Tem como?

    Obrigado,

    Ueritom

  50. Herika disse:

    Boa tarde,

    Tenho um arquivo com várias planilhas, gostaria de colocar os critérios e o resultado em uma nova aba e executar o filtro em todas elas, isto é possível?

    • Marcos Rieper disse:

      Boa noite Herika,

      O filtro avançado somente funciona para uma planilha de cada vez, neste caso você precisaria criar um procedimento VBA específico para o seu caso que realizasse os filtros em cada uma das planilhas e transportasse os resultados dos filtros para esta planilha consolidadora.

      Abraço

      Marcos Rieper

  51. Heber disse:

    Boa tarde,
    Muito bom. Gostaria de saber , se tem como ativar a macro, a partir de uma seleção na caixa de combinação(na guia formulario).

    Obrigado

  52. Ana disse:

    Bom dia Marcos,

    Estou precisando fazer um filtro em uma macro, mas preciso indicar o que não deve filtrar. Ex: Não quero que mostre: “.”, “-”,”0″ e mostre apenas informações válidas, como “Jose”, “Maria”.

    Tenho uma planilha com 6 abas e o filtro deve ser feito em todas elas, mas quero um só comando.

    Deu pra entender?

    Obrigada,
    Abçs,

  53. Bom dia,

    Como faço para filtrar linhas, com base no seu conteúdo, usando caracteres globais ???

    Exemplo:

    Critério passando: *lote*
    Linhas Retornadas: Loteamento, Construção de Lote, Novo Lote…

    Obrigado pela força.

  54. gimene disse:

    Bom dia Marcos!
    gostaria muito de conseguir fazer um filtro como uma opção de busca em uma agenda telefonica, tenho abas de a, b, c, …. é queria criar uma Aba de busca para filtrar somente o nome que procuraria….isso tem como fazer?

Deixe o seu comentário


 
%d blogueiros gostam disto: