Lista Excel VBA com Filtro de Dados Automático 3

Formatação Condicional Excel 2007 e 2010
Formatação Condicional Excel 2007 e 2010
26 de dezembro de 2010
Funções de Banco de Dados
Funções de Banco de Dados
30 de dezembro de 2010

Objetivo: Realizar o filtro de forma automática também com intervalo de datas.

No dia 23 de setembro já havia feito algumas mudanças nesta planilha (http://guiadoexcel.com.br/lista-com-filtro-de-dados-automatico-2) e conforme sugestão do Gilberto fiz algumas alterações que podem ser interessantes também para outros leitores. Foi realizada uma alteração na planilha para que possam ser realizados filtros também entre períodos de datas.

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

28 Comentários

  1. Gilberto disse:

    Bom Dia! e Feliz Ano Novo; parabéns, obrigado pela solução será de muita utilidade em meus trabalhos contábeis. Continue sempre nos brindando com sua capacidade de resolução e nos ensinando.

  2. Paulo Caffé disse:

    Olá, primeiramente parabéns pelos posts, sou usuário novo do site e estou feliz em ver soluções para algumas duvidas…estou com uma duvida e gostaria se poderia me ajudar, acho que tem a ver com filtro..bem..
    estou formulando um hollerite e estou com duvida quanto a transferir dados de uma coluna (a) para outra (b), onde esta contém células com valor 000 e células diferentes de 000…exemplo:

    A B
    001
    000
    000
    002
    003
    000
    004

    eu gostaria de transferir para a coluna B somente os valores diferentes de 000 automaticamente (lembrando que estes valores da coluna A mudam pois estão puxando informaçõe de outra sheet (através do procv)….já tentei a função se(e(…porém quando tenho mais de sete critérios e preciso concatenar & ele começa a juntar os valores..gostaria de saber se existe uma forma de fazer isso em vba…tentei colocar em uma tabela dinâmica porém precisa ficar clicando em atualizar dados e não resolve meu negócio….

    desde já agradeço =)

  3. RaphaelNNoé disse:

    Quero também te parabenizar pelo seu brilhante trabalho com o Excel. As suas planilhas realmente são muito bem elaboras!

  4. edivandro p santos disse:

    bom dia, marcos !

    antes de mais nada, perfeito o que vc passou acima ! me foi muito esclarecedor, pois busco algo próximo do que vc postou e não tava conseguindo nem a pau ,,,

    é o seguinte: tenho uma lista com mil nomes e gostaria de utilizá-la como banco de dados para, em uma outra planilha, digitar diretamente na célula e conforme digitar “aparecer” as opções de nomes conforme aquela lista base – isso aos moldes do preenchimento automático do excel (deixe-me adiantar: não funcionou bem com uma lista grande como essa com muitas opções parecidas nos nomes…)

    poderia me ajudar ?

  5. Fabio L disse:

    Bom Dia Marcos,

    Parabéns pelo site!

    Como eu posso “limpar todos os campos (text box) de uma só vez” depois de ter digitado informações em vários campos que o filtro automático trouxe como resultado ?

    O botão Limpar do Filtro do Excel volta a exibir todas as linhas da planilha mas os textbox continuam preenchidos e tenho que exclui-los um por um para depois conseguir fazer uma nova pesquisa na planilha.

    Muito Obrigado

  6. Vinicius disse:

    Boa tarde novamente Marcos,

    Depois de olhar este modelo, vi que o mesmo seria perfeito para o que eu estou procurando.
    Porém encontrei o seguinte problema:

    Assim que digito algo a ser buscado, ele filtra perefeitamente como deveria. Porém depois de editar uma das celulas que apareceram no resultado, ao clicar novamente no campo de busca, seja ele qual for, retonar um erro “1004” com a mensagem “O método AutoFilter da classe Range Falhou”.
    Estou usando o Office 2010.

    Grato desde já.

  7. edilson disse:

    Marcos Rieper,

    Teria como fazer uma video aula,ainda não consegui fazer com minha tabela.

    Abraço.

  8. FREDSON disse:

    Como eu posso acrescentar mais colunas nesta planilha com esse filtro?

    Obrigado

  9. Marcelo disse:

    Olá,

    Preciso adicionar filtro para 30 colunas e não estou conseguindo programar VBA, pode ajudar?

    Desde já, agradeço a colaboração.

  10. Douglas Miranda disse:

    Marcos parabéns pelo seu site, suas planilhas são incriveis, aproveitando a oportunidade, gostaria de deiar uma sugestão! Poderia disponibilizar e ensinar para nós como fazer um layout bonito de planilha para apresentar relatórios para nossos superiores.

    Obrigado pela oportunidade, e mais uma vez parabéns!

  11. […] este artigo foi utilizada a planilha http://guiadoexcel.com.br/lista-com-filtro-de-dados-automatico-3, ao digitar nas caixas de texto a planilha executará o filtro […]

  12. Tarciso disse:

    Marcos, bom dia!, Estou com uma duvida e nao sabia onde comentar, desculpe. Estou fazendo um trabalho com tabela dinamica porem ao atualizar os dados do banco de dados que eu incluo todos os dias, na tab_din esta me retornando uma mensagem de erro: “Numero excessivo de registros para concluir esta operação”.
    Não sei o que significa, porem, o pc esta ok, a memoria é boa e em nenhuma outra planilha ocorre este erro.
    Pode me ajudar? Obrigado.

  13. Luciane disse:

    Olá,
    fiz uma planilha com a macro, mas está ficando em vermelho no VBA e nao funciona… segue a mesma

    Private Sub TEXTBOX1_Change()
    If TEXTBOX1.Text “” Then Selection.AutoFilter Field:=3, Criteria1:=”=” & TEXTBOX1.Text Else Selection.AutoFilter Field:=3 End If End Sub
    Private Sub TEXTBOX2_Change()
    If TEXTBOX2.Text “” Then Selection.AutoFilter Field:=5, Criteria1:=”=” & TEXTBOX2.Text Else Selection.AutoFilter Field:=5 End If End Sub

    Agradeço

    • Marcos Rieper disse:

      Boa tarde Luciane,

      Tinha faltado o igual “=” no começo

      Private Sub TEXTBOX1_Change()
      If TEXTBOX1.Text = “” Then Selection.AutoFilter Field:=3, Criteria1:=”=” & TEXTBOX1.Text Else Selection.AutoFilter Field:=3 End If End Sub
      Private Sub TEXTBOX2_Change()
      If TEXTBOX2.Text = “” Then Selection.AutoFilter Field:=5, Criteria1:=”=” & TEXTBOX2.Text Else Selection.AutoFilter Field:=5 End If End Sub

      Abraço

      Marcos Rieper

  14. Luciane disse:

    Oi Marcos,
    Obrigada pelo retorno imediato!!

    Usei a macro com a correção e mesmo assim não funcionou… posse te enviar a mesma por e-mail? Você daria uma olhadinha pra mim… por favor?!

    Agradeço!

  15. Jose Eduardo disse:

    Adaptei o vba da function RegressionPoli para encontrar o polinômio (ex.:entro com coluna dos “X” e “Y” e econtro o plinômio;Abaixo descrito,onde está errado?
    Function RegressPoli(x, y, n)
    Dim nx As Integer
    Dim Sx()
    Dim Sxy()
    Dim M() As Variant
    Dim Inv As Variant
    Dim B()
    Dim A()
    Dim i As Integer, j As Integer, k As Integer
    nx = x.Count
    ReDim Sx(2 * n)
    RedDim Sxy(n)
    For i = 0 To 2 * n
    Sx(i) = 0
    For k = 1 To nx
    Sx(i) = Sx(i) + x(k) ^ i
    Next k
    Next i
    For i = 0 To n
    Sxy(i) = 0
    For k = 1 To nx
    Sxy(i) = Sxy(i) + x(k) ^ i
    Next k
    Next i
    For i = 0 To n
    Sxy(i) = Sxy(i) + x(k) ^ i * y(k)
    Next k
    Next i
    ReDim M(1 To n + 1, 1 To n + 1)
    ReDim Inv(1 To 1, 1 To n + 1)
    ReDim B(1 To n + 1)
    ReDim A(0 To n)

    For i = 0 To n
    For j = 0 To i
    M(i + 1, j + 1) = Sx(i + j)
    M(j + 1, i + 1) = Sx(i + j)

    Next j
    B(i + 1) = Sxy(i)
    Next i
    Inv = Application.MInverse(M)

    For i = 1 To n + 1
    A(i – 1) = 0
    For j = 1 To n + 1
    A(i – 1) = A(i – 1) + Inv(i, j) * B(j)
    Next j
    Next i
    RegressPoli = A

    End Function

  16. Virginia disse:

    Marcos,

    Estou com o mesmo problema do Tarciso. “Numero excessivo de registros para concluir esta operação”.
    A tabela dinamica tem 33 colunas e 571 linhas.
    A base que ela puxa os dados tem 63740
    o que posso fazer?

  17. Fabio disse:

    Ola Marcos,tudo bom ?

    Obrigado por ensinar este excelente recurso.

    Por favor te peço uma explicação ou ajuda.

    Utilizando este recurso em minha planilha com 900 linhas de registros porque fica um pouco lento a cada letra que digito no textbox para que o autofiltro exiba apenas o que quero ?

    É diferente do seu modelo onde ao digitarmos cada letra, não fica lento as informações que estão sendo filtradas.

    Existe uma maneira de restringir o Auto Filtro para ele consultar apenas uma quantidade X de linhas, tipo um RANGE neste código vba ?

    Porque ao limparmos 100% o text box o Botão Autofiltro continua exibido como se algo ainda estivesse filtrado ?

    Pode me ajudar?

    Muito Obrigado!

    Abraço,
    Fabio.

  18. […] a partir do conteúdo digitado em elemento TextBox muito semelhante ao já utilizado no artigo Lista com Filtro de Dados Automático 3 aonde é demonstrado como realizar o filtro automático á medida em que vai sendo digitado o […]

  19. […] columns from the contents typed into TextBox element very similar to that already used in Article: Lista com Filtro de Dados Automático (Portuguese), where it is shown how to perform automatic filter will extent it is being typed […]

  20. Juliano Lazzaris disse:

    Boa tarde Riepper,
    Estou com um erro persistente que não acho a solução em nenhum lugar.

    Fiz o filtro avançado na planilha e criei a macro para executar.
    Ate ai tudo bem, funciona perfeitamente!

    O problema é quando eu compartilho essa planilha para uso aqui na empresa.
    Quando vou executar ela da o seguinte erro “O método AdvancedFilter da classe range falhou”

    Poderia me auxilar com esse erro?

    Agradeço desde já!

Deixe uma resposta

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.