Filtrar colunas Excel VBA

Certificação Microsoft Specialist Excel 2010 - MOS 77-882
Certificação Microsoft Specialist Excel 2010 – MOS 77-882
5 de junho de 2014
Planilha para importar NFE - Excel VBA
Planilha para importar NFE – Excel VBA
29 de julho de 2014

Filtrar coluna Excel VBA capa

Objetivo: Como filtrar colunas Excel VBA. Realizar o filtro dos nomes das colunas a partir da digitação, da mesma forma como é utilizado o filtro de linhas no Excel a partir do Autofiltro.

Filtrar colunas Excel VBA 1Uma das funções que ainda faltam ao Excel é o filtro de colunas no Excel. Esta funcionalidade só existe para a filtragem das linhas, mas não para filtrar colunas.

Sendo assim, implementei em Excel/VBA a filtragem de colunas 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 conteúdo para filtrar as linhas.

O código implementado funciona da seguinte forma. Na imagem seguinte vemos algumas colunas de uma planilha:

Filtrar colunas Excel VBA 2

A coluna que irá sumir é a que está em azul na planilha, ela será oculta quando forem digitadas letras que não se encontram no seu título, veja na imagem seguinte:

Filtrar colunas Excel VBA 3

Na TextBox foi digitado ship, e somente as colunas que contém esta cadeira de caracteres na planilha Excel foram mantidas em exibição, sendo ocultas as outras colunas portanto.

Para implementar esta funcionalidade primeiro tenha uma planilha com os dados dispostos em formato de lista, assim como o anexo deste artigo, e insira uma coluna á esquerda.

Filtrar colunas Excel VBA 4

Agora clique na guia Desenvolvedor, veja aqui como habilitar: Habilitar guia desenvolvedor no Excel, clique no botão Modo Design e insira um Textbox, conforme a imagem e posicione á esquerda das colunas.

Filtrar colunas Excel VBA 5

Agora ainda em modo de Edição, clique duas vezes sobre a Text Box inserida na planilha Excel, ela irá redirecionar ao ambiente Microsoft VBA Excel e conterá algo como Private Sub TextBox1_Change() que faz com que seja efetuada uma ação a cada alteração do conteúdo da Text Box.

Copie e cole o conteúdo seguinte sobrepondo o conteúdo que houver no código VBA.

Private Sub TextBox1_Change()
    Dim i As Long
    Dim lColuna As Long
    
    'Desliga a atualização automática do Excel
    Application.ScreenUpdating = False
    
    'Seleciona todas as células da  planilha
    Cells.Select
    
    'Exibe todas as colunas da planilha
    Selection.EntireColumn.Hidden = False
    
    'Determina a última coluna preenchida
    lColuna = Cells(1, Columns.Count).End(xlToLeft).Column
    
    'Seleciona a célula A1
    Cells(1, 1).Select
    
    'Faz um loop por todas as colunas preenchidas a partir da segunda
    For i = 2 To lColuna
        
        'Verifica se a célula contém a informação pesquisada
        If (UCase(Cells(1, i).Value) Like "*" & UCase(TextBox1.Text) & "*") = False Then
            'Oculta a coluna caso não tenha a informação pesquisada
            Columns(i).EntireColumn.Hidden = True
        End If
    Next i
    
    'Seleciona novamente o textbox para digitar o próximo caracter
    TextBox1.Activate
    
    'Liga a atualização automática do Excel
    Application.ScreenUpdating = True
End Sub

Agora volte ao Excel e tire a sua planilha do modo Design, desmarcando o botão na guia Desenvolvedor. Digite algo na Text Box e veja como os dados das colunas são filtrados.

Abraço

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

14 Comentários

  1. Caso eu queira, por exemplo, que a pesquisa seja feita em um intervalo diferente. Não quero que ela comece na segunda coluna e vá até o final das preenchidas. Quero que ela termine em uma determinada coluna. Como faço isso?

  2. Sra Silva disse:

    Oi Amigo, esta planilha é muito boa

    Mas poderia fazer uma com mais filtros nas colunas, tentei fazer mais precisa de IF’s Umas 20 colunas seria perfeito.

  3. Sra Silva disse:

    Desculpe Marcos, mas nao expliquei bem, na verdade preciso demais combos para adicionar nas linhas debaixo,… eu consegui adicionar novos combos, mas quando insiro o dado no segundo combobox apaga o que esta no segundo… tendeu?

    Se fizer uns 3 combos eu multiplico para os demais…

    Obrigada pera rapida resposta

  4. Sra Silva disse:

    Nao encontrei em nenhum lugar mais uma planilha exemplo como a sua, Na verdade todos colocam seu link para mostrar como é possivel filtrar colunas… agradeço se conseguir me ajudar com esta adiçao de mais criterios de pesquisa (mais text.box)…. Se puder deixar o link aqui para que outras pessoas também possam baixar o exemplo…

    Abs,

  5. lucas disse:

    implantei em uma planilha, coloquei em certa coluna e em certa linha e deu certo porem na linha de cima eu não consigo implantar da erro na macro, como eu faco a mesma formula para filtrar a partir da coluna C e filtrar com as informações da linha que eu quiser?

  6. Ricardo disse:

    Amigo, precisava de uma planilha semelhante, porém que ao invés de filtrar por coluna, fosse por linha,
    onde eu posso mudar o código para conseguir esse Resultado?

    Consegue me ajudar por favor?

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.