Guia do Excel

Ocultar Segmentação de Dados no Excel e Reexibir VBA

Como ocultar a segmentação de dados no Excel e como exibi-la novamente usando VBA no Excel. Artigo com vídeo-aula e download da planilha.

MR
Marcos Rieper

Especialista em Excel

Atualizado em 08 de julho de 2026 Publicado em 24 de janeiro de 2022 5 min de leitura

Neste artigo você aprenderá como ocultar a segmentação de dados no Excel e exibir novamente, também como ocultar e exibir utilizando VBA no Excel.

Esta técnica é especialmente interessante quando você precisa exibir uma segmentação de dados apenas em um determinado momento.

Pode ser aplicada em tabelas e tabelas dinâmicas, sendo especialmente útil para para dashboards e situações que você tem pouco espaço disponível ou tem um filtro que ocupa muito espaço.

Material gratuito

Planilha de Controle Financeiro no Excel

Tenha um controle bonito e completo do seu financeiro.

  • Categorias e subcategorias já configuradas
  • Planilhas separadas por tabela (configuração, lançamentos, resumo)
  • Personalize com suas próprias categorias e ícones

Baixe grátis — receba o link no seu e-mail

Como Exibir ou Ocultar Segmentação de Dados no Excel

Você pode exibir objetos que "flutuam" sobre a planilha, como imagens e propriamente as segmentações de dados.

Você pode realizar este procedimento manualmente no Excel por meio do Painel de Seleção.

Ele pode ser acessado pela guia Página Inicial -> Localizar e Selecionar -> Painel de Seleção...

ocultar segmentação de dados no excel

Ao clicar sobre o painel de seleção serão exibidos todos os objetos presentes na planilha.

ocultar segmentação de dados no excel 2

Os objetos são por exemplo imagens, segmentações de dados, objetos de VBA entre outros.

Ele é muito semelhante ao painel de seleção que temos em programas gráficos como por exemplo o Photoshop.

Ao clicar sobre o ícone de olho ele irá trocar entre exibido ou não o objeto selecionado.

Todos os objetos da planilha estarão presentes neste painel de seleção.

Desta forma você poderá manualmente exibir ou ocultar a segmentação de dados no Excel por exemplo.

Ao realizar esta ação, o que estava filtrado continuará filtrado, ele apenas oculta o objeto.

Agora veja como alterar para que seja automaticamente oculta e reexibida a segmentação de dados utilizando VBA no Excel.

Ocultar e Exibir Segmentação de Dados no Excel VBA

Nós temos a seguinte tabela de bastecimentos.

Gostaríamos de incluir filtros visuais com segmentação de dados para o filtro de Placa, Combustível e

ocultar segmentação de dados no excel 3

Para isso incluímos um ícone ao topo de cada uma destas colunas.

Para selecionar um ícone, pode usar a ferramenta do Excel em Inserir->Ícones e digitar o ícone que deseja, no nosso exemplo adicionamos o ícone Filtro.

Colocamos ele ao topo da coluna, ao lado do filtro existente.

ocultar segmentação de dados no excel 4

O objetivo é que ao clicar sobre o ícone seja exibido ou oculta a segmentação.

Inserimos então a segmentação de dados clicando em Inserir -> Segmentação de Dados.

ocultar segmentação de dados no excel 5

Selecionamos então as três segmentações de dados que citamos e posicionamos sobre a tabela, ficando conforme na imagem.

ocultar segmentação de dados no excel 6

Posicione os demais conforme acima, veja também o ícone ao topo.

Como sugestão, após redimensioná-la e ajusta-la, clique em cada segmentação de dados com o botão direito e selecione a opção Tamanho e Propriedades e altere a opção em Posição e Layout chamada Desabilitar redimensionamento e movimentação para marcada no slicer.

Isso fará com que o slicer não possa ser redimensionado ou arrastado sem querer durante a ação de filtragem.

A estrutura agora está pronta, iremos agora trabalhar na questão da automação de exibir e ocultar o slicer por VBA.

Inicialmente Habilite a guia Desenvolvedor se estiver desabilitada.

Em seguida, pressione o atalho ALT+F11 ou clique em Desenvolvedor -> Visual Basic.

Clique no menu em Inserir -> Módulo e no módulo criado cole o seguinte código VBA.

Global gflMotorista     As Boolean
Global gflFornecedor    As Boolean
Global gflPlaca         As Boolean
Global gflDashboard     As Boolean

Public Sub lsFiltroMotorista()
    If gflMotorista = True Then
        ActiveSheet.Shapes.Range(Array("Motorista")).Visible = msoFalse
        gflMotorista = False
    Else
        ActiveSheet.Shapes.Range(Array("Motorista")).Visible = msoTrue
        gflMotorista = True
    End If
End Sub

Public Sub lsFiltroPlaca()
    If gflPlaca = True Then
        ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoFalse
        gflPlaca = False
    Else
        ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoTrue
        gflPlaca = True
    End If
End Sub

Public Sub lsFiltroFornecedor()
    If gflFornecedor = True Then
        ActiveSheet.Shapes.Range(Array("Fornecedor")).Visible = msoFalse
        gflFornecedor = False
    Else
        ActiveSheet.Shapes.Range(Array("Fornecedor")).Visible = msoTrue
        gflFornecedor = True
    End If
End Sub

Public Sub lsFiltroDashboard()
    If gflDashboard = True Then
        ActiveSheet.Shapes.Range(Array("Retângulo: Único Canto Arredondado 1")). _
            Visible = msoFalse
        ActiveSheet.Shapes.Range(Array("Data (Mês) 1")).Visible = msoFalse
        ActiveSheet.Shapes.Range(Array("Combustível 1")).Visible = msoFalse
        ActiveSheet.Shapes.Range(Array("Placa 2")).Visible = msoFalse
        
        gflDashboard = False
    Else
        ActiveSheet.Shapes.Range(Array("Placa 2")).Visible = msoTrue
        ActiveSheet.Shapes.Range(Array("Combustível 1")).Visible = msoTrue
        ActiveSheet.Shapes.Range(Array("Data (Mês) 1")).Visible = msoTrue
        ActiveSheet.Shapes.Range(Array("Retângulo: Único Canto Arredondado 1")). _
            Visible = msoTrue
            
        gflDashboard = True
    End If
End Sub

O código acima funciona da seguinte forma:

No início do código criamos variáveis globais que iniciam com gfl, chamamos assim para identificar que são G-globais e fl-flags, ou seja booleanas que irão receber apenas Verdadeiro e Falso.

O objetivo delas é armazenar a situação dos objetos, se estão visíveis ou ocultos, tendo uma variável para cada segmentação de dados.

Então temos vários procedimentos como o lsFiltroMotorista() que irá filtrar somente a segmentação de motorista, contendo o seguinte código:

If gflPlaca = True Then
    ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoFalse
    gflPlaca = False
Else
    ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoTrue
    gflPlaca = True
End If

Veja que ele verifica, SE gflPlaca = Verdadeiro, então, exibir a segmentação Placa 1 e mudar a gflPlaca para Falso, SENÃO ocultar a segmentação Placa 1 e mudar a variável gflPlaca para Verdadeiro.

Desta forma temos então a mudança de estado ocultando a segmentação de dados ou imagem e também mudando a variável que a controla e o resultado é conforme na imagem abaixo.

Este mesmo conceito também pode ser aplicado em imagens e pode ser muito útil em dashboards no Excel conforme pode perceber no exemplo abaixo.

No exemplo acima, nós exibimos e ocultamos todos os slicers ao mesmo tempo, bem como a imagem que está por trás dos mesmos, e usando o mesmo conceito de código usando a variável global, temos a situação atual da objeto, visível ou não e o alteramos.

Download da Exemplo Ocultar e Reexibir Segmentação de Dados

Realize o download da planilha deste artigo no botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Download — baixe aqui: Ocultar e Reexibir Segmentação de Dados VBA Excel
Ocultar e Reexibir Segmentação de Dados VBA Excel211 KB · Excel 2010 ou superior · com macrosPreencha seus dados para receber o link de download no seu e-mail.

Este conteúdo foi útil?

Continue lendo