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.
Especialista em Excel
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.
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
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...

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

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

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.

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.

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

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.
Este conteúdo foi útil?
Continue lendo

Como Criar Suplementos VBA no Excel
Criar um suplemento VBA no Excel é uma das formas mais poderosas de transformar suas automações em ferramentas profissionais e reutilizáveis.

Número por Extenso no Excel
Como escrever o número por extenso no Excel com fórmulas e VBA. Passo-a-passo tutorial e download gratuito de planilha com exemplo.

Suplemento Excel Gratuito - Guia do Excel
Como instalar um suplemento no Excel e também como instalar o suplemento gratuito do Guia do Excel. Recursos para te dar mais agilidade.

