Reexibir todas as planilhas e Ocultar as planilhas novamente – Excel VBA

Contar e Somar Condicional utilizando Somarproduto Excel
Contar e Somar Condicional utilizando Somarproduto Excel
29 de agosto de 2012
Aging List Excel
Aging List Excel
9 de setembro de 2012

Reexibir todas as planilhas e Ocultar as planilhas novamente  – Excel VBA

Objetivo: Disponibilizar procedimentos para reexibir todas as planilhas de um arquivo Excel e outro para ocultar somente as planilhas que estavam ocultas.

Os procedimentos VBA que estou disponibilizando hoje podem ser muito úteis para quem tem o costume, assim como eu, de ocultar planilhas que não são utilizadas com tanta frequência.

As vezes precisamos rever estas planilhas, muitas vezes não lembramos mais qual é, ou precisamos mesmo reexibir todas as planilhas que estão ocultas.

Para fazer com que o Excel reexiba todas as planilhas de um arquivo Excel eu criei o procedimento VBA Excel lsTodasVisiveis aonde todas as planilhas que estão ocultas ficam visíveis.

Em contra-partida também criei o procedimento VBA Excel lsRetornarOcultas que faz com que as planilhas que antes estavam ocultas fiquem ocultas novamente.

Os procedimentos abaixo devem ser colocados no arquivo PERSONAL, importante que seja no início do arquivo por causa das variáveis globais que existem. conforme explicado no artigo http://guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet.

Você também pode criar atalhos dos procedimentos VBA para que possam ser acessados rapidamente de qualquer lugar conforme demonstrado no artigo http://guiadoexcel.com.br/criar-botoes-de-atalho-para-macros-e-procedimento-vba.

Abaixo o código VBA Excel dos procedimentos para que possam ser copiados e executados.

'Declara as variáveis globais
Global lPlanilhas()    As String
Global lArquivo        As String

'Faz com que todas as planilhas fiquem visíveis
Public Sub lsTodasVisiveis()

Dim lWorksheet      As Worksheet
Dim lWorkbook       As Workbooks
Dim lCont           As Integer

    Set lworkbooks = ActiveWorkbook
    lCont = 0

    lArquivo = lworkbooks.Name

    'Identifica as planilhas que não estão visíveis e as reexibe
    For Each lworksheets In lworkbooks.Worksheets

        If lworksheets.Visible  xlSheetVisible Then
            'Redimensiona e mantém as informasões anteriores
            ReDim Preserve lPlanilhas(lCont)

            'Passa os dados para a variável lPlanilhas e a deixa visível
            lPlanilhas(lCont) = lworksheets.Name
            lworksheets.Visible = xlSheetVisible
            lCont = lCont + 1
        End If

    Next lworksheets

End Sub

'Oculta novamente as planilhas
Public Sub lsRetornarOcultas()
On Error Resume Next

Dim lControle   As Integer
Dim lTotal      As Integer

'Determina o total de planilhas
lTotal = UBound(lPlanilhas)

'Para cada planilha que estava oculta e ficou visível o sistema oculta ela novamente
For lControle = 0 To lTotal
    Workbooks(lArquivo).Worksheets(lPlanilhas(lControle)).Visible = xlSheetHidden
Next lControle

End Sub

😀 Abraço
Marcos Rieper

29 Comments

  1. Não consegui fazer funcionar Marcos.
    Erro de Compilação -> Erro de Sintaxe
    Linha: If lworksheets.Visible <> xlSheetVisible Then

    Muito seu site… Tá de Parabéns…

  2. Ricardo disse:

    Alô

    Dá erro “Não é possivel definir a propriedade Visible na classe Worksheet”

    na Ln26, Col13:
    lworksheets.Visible = xlSheetVisible

  3. Ricardo disse:

    Office Professional Plus 2010

    já tentei também com vba password bypasser e nada..

  4. Marcio disse:

    Estou com o mesmo problema do Ricardo, as estações na empresa que trabalho mudaram para Win 8 e Office Professional 2010. E não consigo fazer com que as planilhas apareçam.

  5. Renato disse:

    olá, no caso de querer que apenas uma das planilhas ocultas seja reexibida, o que deve ser alterado ?

    Grato,

    Renato

  6. Diego disse:

    Muito Obrigado, tirou dúvida e agregou muito conhecimento.

  7. Olá, tenho uma dúvida em relação as abas, eu criei um arquivo em excel onde tem aproximadamente 20 abas, porém eu gostaria de visualizar todas ela de uma vez, ao invés de somente uma linha, existe alguma forma para que eu possa fazer isso?

  8. Bom dia Marcos,

    Acho que não ficou muito claro…
    Vou tentar explicar de outra forma. Ao criar uma nova aba, aparece o seguinte nome (Plan1) certo? Imagina que eu criei várias abas que chegam até o Plan30 por exemplo, só que na linha onde estão o Plan1, eu só consigo ver até o Plan10, após isso eu tenho que clicar na setinha ao lado pra poder visualizar os outros Plans, ai que fica a minha dúvida… Existe alguma forma de eu conseguir visualizar os Plans de 1 ao 30 tudo de uma vez?

    Obrigado.

  9. Renan Madruga disse:

    Olá. Tentei e não consegui. Recebo uma mensagem: “Erro de compilação! Constantes, sequências de comprimento fixo, matrizes, tipos definidos pelo usuário e instruções declare não são permitidas como membros públicos de módulos de objetos.”

    Excel 2007

    Obrigado.

  10. Marcos, estou com uma planilha onde embora desbloqueada, as pastas estão invisíveis e o cursor não consegue abrir nova pasta…o que fazer? Somente uma pasta chamada cliente esta visível e a mais importante que é a pasta tabela_referencia esta oculta!

  11. Leonildo Aires Durães disse:

    Marcos Rieper,
    Como é bom encontrar pessoas/profissionais bacanas como você.

    Meu caro, olha só o que está acontecendo no código.

    ReDim Preserve lPlanilhas(lCont)

    Aparece a mensagem…. Compile erro: Variable not defined

    Me perdi com esse erro.

    Help me, please!
    att, Leonildo Durães

    • Marcos Rieper disse:

      Bom dia Leonildo,

      Não era para dar este problema. Isso indica que a variável não foi definida.

      Mas ela é devidamente criada no código e passado o valor 0 para ela, então não deve ser.

      Veja se a variável lCont ela está declarada corretamente com este nome.

      Abraço
      Marcos Rieper

  12. Leonardo disse:

    Olá Marcos
    Na planilha em que recebi as Abas estão Ocultas e não deixa eu “mostrar”, está protegido, ficando inativo para clicar em “mostrar”

    Como posso desproteger?
    Obrigado!

  13. ROBERTO VERCESI GUGISCH disse:

    Olá, recebi uma planilha desprotegida de um amigo.
    Ela contém três planilha dentro dela, duas visíveis e uma delas invisível.
    Já tentei de todas as formas e até procurei na internet algum jeito de torná-la visível, mas não consigo encontrar de modfo algum.
    Ao rodar seu programa ele me fornece o mesmo erro que já tinha visto ao tentar fazer manualmente.

    O erro é o seguinte:

    Run-time error ‘1004’:

    Unable to set the visible property of the Worksheet class

    E não consigo sair disso. Tem alguma idéia do que seria isso? E de como torná-la visível?

  14. MOACIR ZANOLLI disse:

    Marcos Rieper, uma boa noite!
    Eu gosto muito do seu site. Tenho observado que vc é muito prestativo com os seus internautas e não abusando da sua amável bondade, ficarei muitíssimo agradecido se puder me ajudar nessa. Estou com uma planilha que preciso entrar no modulo VBA USEFORM e não estou conseguindo. Primeiro, que aprece a mensagem PROJECT VBA NÃO PODE SER EXIBIDO. usei o caminho desenvolvedor com VISUAL BASIC e nada de êxito. Já estou exausto com esta planilha, pois, já tentei de todas as formas e não encontro alternativa. SERÁ POSSÍVEL A SUA AJUDA EM ME CONCEDER ALGUM PROCEDIMENTO PARA QUE EU POSSA SANAR ESSE MEU PROBLEMA? – conto com a sua rica presteza.
    Meu e-mail: m.zanolli@Hotmail.com
    Um forte abraço e fique com o nosso bondoso Deus…

    SÃO PAULO/SP 29/07/2018

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.