Filtrar colunas Excel VBA
Especialista em Excel

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.
Uma 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:
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:
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.
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.
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
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90









