Ir ao conteúdo

Excel Como reexibir e ocultar abas contidas na planilha com macro


Ir à solução Resolvido por Scofieldgyn,

Posts recomendados

Postado

Pessoal, gostaria de uma ajuda para criar uma macro.


Vejamos. Tenho uma planilha que quero ocultar as abas (planilhas) contidas nela, para ficar com um visual mais discreto.

Mas também gostaria de reexibir uma planilha (aba), para realizar possíveis alterações, quando necessário.

Pois bem, fiz alguns testes com macro, mas não consegui. Infelizmente, não tenho muita habilidade com VBA.

Por exemplo, quando eu executo a linha de código Sheets("Banco de Dados").Visible = True e as demais planilhas ficam com o argumento False, não consigo acessar as outras planilhas (macro 20-Sub OcultarReexibirPlan).

Melhor explicando, quando aciono a macro 20 (Sub OcultarReexibirPlan), não consigo alternar entre as outras planilhas com os hiperlinks. Fica visível apenas a aba Banco de Dados, e as demais planilhas ficam inacessíveis.

 

Assim, gostaria de uma macro que:

 

  • Quando clicasse em SIM, reexibisse a planilha Banco de Dados.
  • Quando eu clicasse em NÃO, ocultasse a planilha Banco de Dados (ou não fizesse nada, não estando a planilha Bando de Dados exibida obviamente).
  • Mantivesse a navegação entre abas ao clicar nos botões linkados.

 

Acho que seria uma msgbox com SIM, NÃO e CANCELAR.


Assim, é possível criar uma macro para atender ao comando acima, mantendo a possibilidade de alternar entre as demais planilhas (clicando nos hiperlinks)?

 

Para maiores detalhes, segue a planilha em anexo.

Desde já, agradeço pela ajuda.

Redator_de_Relatorios_de_Audiencia-ss_-_teste.rarBuscando informações...

  • Solução
Postado

@Nilton Cézar

 

a macro abaixo vai ocultar todas as guias e deixando apenas visível a que você definir conforme está em vermelho, no caso como exemplo, deixar apenas o Menu vísivel. Mas antes, coloque o pra reexibir manualmente todas as guias, adicione um botão e execute a macro. 

 

Sub Oculta_ReexibiGuias()

ActiveWindow.DisplayWorkbookTabs = True = Not ActiveWindow.DisplayWorkbookTabs = True
Plan1.Visible = xlSheetVisible

End Sub

 

 

  • Curtir 1
Postado

Scofieldgyn, fiz os testes aqui, mas infelizmente a macro acima oculta e reexibe todas as guias, quando clico no botão alternadamente. 

 

Ela não deixou visível apenas a Plan1, como se esperava, no caso do exemplo acima.

 

  Em 20/09/2022 às 15:07, Scofieldgyn disse:

Mas antes, coloque o pra reexibir manualmente todas as guias, adicione um botão e execute a macro. 

Expandir  

 

A propósito, eu coloquei para reexibir todas as guias, executando a linha abaixo (com F8), contida na macro 18:

 

Sub Display_Planilha()
    
' Exibe ou oculta cabeçalho, barra de rolagem e guia de planilhas.
    With ActiveWindow
.
.
.
	'Exibe/oculta a barra de abas (planilha).
	.DisplayWorkbookTabs = True
.
.
.
 End With

End Sub

 

Na realidade, acho que a macro não está ocultando as guias. Suponho que ela esteja, na verdade, ocultando a barra de abas, pois consta DisplayWorkbookTabs no código enviado.

 

 

Postado

@Nilton Cézar entendi, use esse abaixo.

 

'essa primeira Sub vai ocultar

Sub SheetHidden()
    Dim xWs As Worksheet
    Dim xName As String
    
    xName = Application.InputBox("Range", xTitleId, Application.ActiveSheet.Name, Type:=2)
    
    For Each xWs In Application.ActiveWorkbook.Worksheets
        If xWs.Name <> xName Then
            xWs.Visible = xlSheetHidden
        End If
    Next
End Sub

 

'Essa Sub vai reexibir
Sub SheetUnHidden()
    Dim xWs As Worksheet
    For Each xWs In Application.ActiveWorkbook.Worksheets
        xWs.Visible = True
    Next
End Sub

  • Curtir 1
Postado

Scofieldgyn, fiz alguns testes e estamos quase chegando lá. 😀

 

Vejamos o que constatei:

  • Quando clico na macro Sub SheetHidden(), na verdade esse comando executa uma ordem de EXIBIÇÃO da guia ativa
  • Mas, se eu digitar qualquer outra guia, a macro exibe a guia selecionada, porém não consigo voltar para outras guias, clicando em seu botão de hiperlink. Ou seja, as demais guias ficam inacessíveis. É como se a planilha ficasse travada. Isso também aconteceu nos meus testes, conforme explicado no primeiro post.
  • A macro Sub SheetUnHidden() suponho que seja desnecessária, já que pretendo deixar oculta todas as guias.

Bom, na verdade, não pretendo deixar as guias visíveis, como mencionado acima. Quero deixá-las, desde já, ocultas e reexibir apenas a guia Banco de Dados, para fazer alterações nela, se necessário.

 

Então, vejamos como seria a ideia da dinâmica da macro desejada:

  • Quando clicasse em SIMreexibisse a planilha Banco de Dados.
  • Quando eu clicasse em NÃOocultasse a planilha Banco de Dados (ou não fizesse nada, não estando a planilha Bando de Dados exibida obviamente).
  • Mantivesse a navegação entre abas ao clicar nos botões linkados.

Acho que seria tipo uma msgbox com SIM, NÃO e CANCELAR com condições IF, para exibir a guia Banco de Dados e, depois, ocultar (estando as demais guias já ocultas também, como pretendido). 

 

Scofieldgyn, será que é possível fazer os ajustes necessários para ter o funcionamento acima?

 

Parece ser algo bem difícil.

 

Mais uma vez, agradeço pela ajuda.

 

 

Postado

Pra que funcione da forma que deseja, em vez de navegar nas guias via Hiperlink, faça macro de navegação, assim resolve sua questão.

 

Desconheço a rotina de ocultar abas e o hiperlink continuar funcionando.

 

  • Curtir 1
Postado

Scofieldgyn, por favor, me tire uma dúvida sobre a primeira macro que você postou, que segue descrita abaixo:

 

Sub Oculta_ReexibiGuias()

ActiveWindow.DisplayWorkbookTabs = True = Not ActiveWindow.DisplayWorkbookTabs = True
Plan1.Visible = xlSheetVisible

End Sub

 

Eu posso anular ou excluir esta linha de código: "Plan1.Visible = xlSheetVisible" da citada macro? Se anular/exluir, ela pode comprometer o funcionamento do código acima transcrito?

 

Postado
  Em 22/09/2022 às 11:08, Scofieldgyn disse:

pode excluir sem problema! 👍

Expandir  

 

  Em 21/09/2022 às 20:50, Scofieldgyn disse:

Desconheço a rotina de ocultar abas e o hiperlink continuar funcionando.

Expandir  

 

Fiz uns testes aqui e verdadeiramente o hiperlink não funciona mesmo.

 

Scofieldgyn, consegui a marco pretendida. Fiz uma montagem com alguns comandos que já haviam na planilha, que havia enviado em anexo.

 

Realmente, quando as guias ficam ocultas, os hiperlinks ficam inativos. Mas, percebi que a linha "DisplayWorkbookTabs = False" permitia a navegação entre abas, mesmo ocultando a barra de guias.

 

Pois bem, faltava apenas deixar acessível a aba Banco de Dados. Para isso, usei uma simples linha de código, qual seja, "Sheets("Banco de Dados").Select". Assim, a macro ficou desta forma: 

 

Sub Display_PlanilhaReexbirBancoDados()
    
    With ActiveWindow        
        .DisplayWorkbookTabs = False    
    End With
    
   Sheets("Banco de Dados").Select
End Sub

 

A propósito, vou usar esta macro, que você havia postado primeiramente:

 

Sub Oculta_ReexibiGuias()
ActiveWindow.DisplayWorkbookTabs = True = Not ActiveWindow.DisplayWorkbookTabs = True
End Sub

 

Ela pode me ser útil, para visualizar as demais guias e fazer possíveis ajustes.

 

Assim, gostaria de agradecer por sua ajuda, Scofieldgyn. Suas orientações foram bastante relevantes.

 

Muito obrigado.

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...