KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como ocultar colunas em tempo real com base na entrada do utilizador no Excel?

AutorXiaoyang Data de Modificação

Ocultar colunas no Excel é uma tarefa comum, mas já alguma vez tentou fazê-lo automaticamente com base em determinados valores introduzidos? Por exemplo, ao digitar «AA» numa célula, a coluna A é ocultada; ao inserir «BB», as colunas B e C desaparecem; com «CC», as colunas D e E ficam ocultas; e ao introduzir «DD», é a coluna F que se esconde — tal como ilustrado abaixo. Este artigo apresenta um código VBA para resolver exatamente este cenário no Excel.

Utilize código VBA para ocultar ou mostrar colunas em tempo real com base na entrada do utilizador

Utilize código VBA para ocultar ou mostrar determinadas colunas com base na entrada do utilizador


Utilize código VBA para ocultar ou mostrar colunas em tempo real com base na entrada do utilizador

Para ocultar as Especificar coluna em tempo real com base nos valores introduzidos, aplique o seguinte código VBA:

1. Na folha de cálculo onde pretende ocultar colunas, clique com o botão direito do rato no separador da folha e selecione «Ver Código» no menu de contexto, conforme ilustrado na imagem seguinte.

Uma captura de ecrã que mostra como abrir a janela do Visual Basic for Applications no Excel ao clicar com o botão direito no separador da folha

2. Na janela «Microsoft Visual Basic para Aplicações» que se abriu, copie e cole o seguinte código VBA na janela «Folha (Código)».

Código VBA: Ocultar colunas em tempo real com base na entrada do utilizador

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Nota: No código acima, «K1» é a célula onde introduz o texto específico. Deverá ajustar o texto e os nomes das colunas de acordo com as suas necessidades. Além disso, pode adicionar outros critérios novos bastando incluir os seguintes scripts:
  • Caso «AA»: Columns(«A»).EntireColumn.Hidden = False
  • Columns(«A»).EntireColumn.Hidden = True

Uma captura de ecrã da janela de código VBA no Excel com código colado para ocultar colunas com base na entrada do utilizador

3. Em seguida, feche a janela do código. Agora, ao introduzir «AA» na célula K1 e premir Enter, a coluna A será ocultada; ao introduzir «BB» e premir Enter, as colunas B e C serão ocultadas — e assim sucessivamente. Se introduzir qualquer outro valor ou eliminar o conteúdo, as colunas ocultas serão imediatamente exibidas, conforme demonstrado abaixo:


Utilize código VBA para ocultar ou mostrar determinadas colunas com base na entrada do utilizador

Neste exemplo, irei filtrar um intervalo de dados com base num nome de produto introduzido. Ao digitar «Hoodie», apenas as informações relativas a Hoodie são exibidas, e as restantes colunas são imediatamente ocultadas; ao introduzir «All», todas as colunas são exibidas, conforme demonstrado abaixo:

1. Na folha de cálculo onde pretende ocultar colunas, clique com o botão direito do rato no separador da folha e selecione «Ver Código» no menu de contexto, conforme ilustrado na imagem seguinte:

Uma captura de ecrã que mostra como abrir a janela do Visual Basic for Applications no Excel ao clicar com o botão direito no separador da folha

2. Na janela «Microsoft Visual Basic para Aplicações» que se abre, copie e cole o seguinte código VBA na janela «Folha (Código)».

Código VBA: Ocultar ou mostrar colunas para filtrar dados com base na entrada do utilizador

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Nota: No código acima, «K1» é a célula onde introduz o texto específico e «B1:H1» são os cabeçalhos de linha que contêm os nomes dos produtos que pretende filtrar.

3. Em seguida, feche a janela do código. Agora, ao introduzir o nome do produto na célula K1, apenas as colunas correspondentes serão exibidas e as restantes ocultadas; ao digitar «All», todas as colunas reaparecerão, conforme demonstrado abaixo:

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...


Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil

  • Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
  • Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!

Todos os suplementos Kutools — num único instalador.

Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.

ExcelWordOutlookTabsPowerPoint
  • Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Um instalador, uma licença— configuração em minutos (pronto para MSI)
  • Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
  • Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
  • Melhor relação qualidade-preço— poupe face à compra individual dos suplementos