Mostrar e Ocultar Folhas de Cálculo em simultâneo (VBA)

Soluções que nos permitem facilitar e automatizar o processo de mostrar folhas ocultas no Excel.
Ocultar folhas de cálculo em simultâneo

Resumo

Ocultar várias sheets de uma só vez (em 1-click) é um processo simples e rápido no Excel. Basta selecionar uma folha e com o SHIFT ou CTRL selecionar as restantes sheets e ocultar todas de uma vez.

Mas e se quiseremos mostrar várias folhas ocultas? Que métodos podemos usar para mostrar todas de uma vez?

Ocultar várias Sheets em 1 clique

1. Começamos por selecionar uma sheet.

Selecionar uma sheet

2. Pressionamos CTRL e selecionamos outras sheets uma a uma.

CTRL para selecionar sheets uma a uma

3. Ou pressionamos SHIFT e selecionamos todas as outras sheets de uma vez.

SHIFT para selecionar todas as sheets

4. E podemos assim ocultar todas em apenas um clique.

Ocultar várias sheets de uma vez

Mostrar várias Sheets em 1-Click

Mostrar várias sheets escondidas em um clique não é tão simples como ocultar, já que o menu de mostrar as folhas não permite a utilização do CTRL ou do SHIFT para selecionar várias folhas ao mesmo tempo. Ou seja, temos que selecionar uma sheet de cada vez e selecionar mostrar.

Menu mostrar sheets

Outra forma, seria alternar para a vista de Programador e alterar as propriedades das sheets para -1 - xlSheetVisible. Mas também este processo, apesar de um pouco mais rápido é extremamente manual.

Mostrar sheets via programador

Estes métodos mais manuais tornam-se ainda mais demorados se tivermos que mostrar muitas sheets.

Vejamos então algumas soluções que nos permitem facilitar e automatizar este processo de mostrar folhas ocultas.

Método 1 - Criar uma vista personalizada

As vistas personalizadas são uma feature do Excel pouco usada, mas podem ser bastante úteis. Neste caso iremos criar 2 vistas personalizadas. Uma delas com todas as folhas visíveis e outra apenas com uma folha vísivel e todas as outras ocultas.

1. Começamos por selecionar Ver -> Vistas Personalizadas

Selecionar vistas personalizadas

2. Adicionar uma nova vista.

Personalizar vistas

3. Criamos as vistas personalizadas, gravando uma vista chamada Todas as Folhas tendo todas as folhas visíveis.

Criar vistas personalizadas

4. De seguida ocultamos todas as folhas (ficando apenas 1 visível) e criamos outra vista a que vamos chamar Folhas Ocultas.

5. Assim, quando selecionamos a vista Todas as Folhas o Excel mostra-nos todas as sheets.

Todas as folhas visíveis

6. E quando selecionamos a vista Folhas Ocultas muda a vista para apenas 1 sheet visível.

Folhas ocultas

Este método tem um problema. As vistas personalizadas não funcionam com Tabelas de Dados (Data Tables). Basta uma das folhas ter uma Data Table e a vista personalizada deixa de funcionar. Para estes casos precisamos procurar um método diferente.

Método 2 - Usar a janela Immediate Window do VBA

1. Começamos por chamar a visão Programador clicando em ALT + F11 ou selecionando uma sheet e escolhendo a opção Ver Código.

Ver código VBA

2. Selecionar a opção Immediate Window através de View -> Immediate Window ou usando o atalho CTRL + G.

Ver immediate window

3. Na Immediate Window vamos colocar uma pequena Macro que nos permitirá automatizar o processo. Colamos o código abaixo e pressionamos ENTER de seguida.
for each sh in worksheets: sh.visible=true: next sh
Janela immediate window para inserir código

Esta Macro vai correr sheet a sheet e alterar o estado de cada uma das sheets de oculta para visível.

Argumentos

for each sh in worksheets // Usamos "for...each" para criar um loop em que chamamos cada sheet "sh" no conjunto de todas as "worksheets"
sh.visible=true // alteramos a propriedade de visibilidade da sheet para "True" (Verdadeiro)
next sh // passamos à sheet seguinte até chegarmos à última sheet disponível do ficheiro.

Nota: Este método pode ser usado em qualquer ficheiro Excel e não obriga a que seja gravado como um livro com permissões para Macros. Basta fazer copy/paste e correr a macro clicando em ENTER.

Método 3 - Adicionar uma Macro para mostrar sheets

Se precisares de usar esta funcionalidade de mostrar as sheets escondidas muitas vezes, faz sentido criar uma macro e armazená-la num livro especial denominado Personal.xlsb guardado no teu computador. Todas as macros do livro pessoal ficam disponíveis sempre que usares o Excel nesse computador.

1. Chamar o menu de criação de Macros clicando no botão inferior esquerdo do Excel para gravar Macros.

Menu criação macros

2. Definir o nome para a Macro - vamos usar o nome "unhide_sheets"; não esqueças que nomes de Macros não podem ter espaços - e selecionar guardar no "Livro pessoal de macros"

Nomear a macro

3. Paramos de gravar a Macro clicando no botão STOP.

Parar gravacao macro

4. Abrimos o Editor de Visual Basic (ALT + F11).
5. No painel Project Explorer clicar o sinal "+" juntao a VBAProject (PERSONAL.XLSB).
6. Abrir a pasta Modules.
7. Fazer duplo-click na opção Module1.

Selecionar modulo

8. Substituir o código existente dentro da Sub unhide_sheets pelo código abaixo.
Sub unhide_sheets()
Dim sh As Worksheet

    For Each sh In Worksheets: sh.Visible = True: Next sh

End Sub
Codigo da macro

E desta forma já temos uma Macro criada que nos permitirá mostrar todas as sheets escondidas em 1-click.

Atribuir um botão à Macro e adicionar à Barra de Ferramentas de Acesso Rápido

1. No topo superior esquerdo clicar a seta da Barra de Ferramentas e escolher Mais comandos....

Adicionar ao acesso rápido

2. Escolher o comando Macros.

Escolher o comando macro

3. Selecionar a macro unhide_sheets e adicionar na Barra de Ferramentas.

Selecionar a macro

4. Escolher Modificar e alterar a imagem do botão e o texto do botão e dar OK.

Modificar botão macro

5. O botão fica disponível na Barra de Ferramentas

Botão na barra de ferramentas

6. Não esquecer de gravar as alterações no Livro Pessoal de Macros.

Gravar alterações

Ideias Chave

1. Ocultar várias sheets é um processo fácil mas mostrar várias em 1-click nem tanto.
2. Podemos mostrar várias sheets usando Vistas Personalizadas (não funciona com Data Tables)
3. Se for uma operação esporádica podemos correr uma linha de código na janela Immediate Window.
4. Se for um processo recorrente idealmente devemos adicionar uma Macro no Livro Pessoal de Macros (PERSONAL.XLSB)

Descargas

Descarrega aqui o ficheiro com os exemplos para mostrar e ocultar folhas de cálculo em simultâneo (VBA)