Usuário com melhor resposta
Ocultar e visualizar planilhas

Pergunta
-
Se eu tentar tornar visível uma planilha que já está visível, ou ocultar uma que já está oculta resulta em erro?
Haviam me sugerido aqui no fórum que eu utilizasse o seguinte método:
Dim mostraplan as boolean ' para tornar visível Mostraplan = Sheets("Monitoramento").Visible = False If Mostraplan Then Sheets("Monitoramento").Visible = True ' para ocultar Mostraplan = Sheets("Monitoramento").Visible = true If Mostraplan Then Sheets("Monitoramento").Visible = false
No entanto sempre retorna erro em algum momento e aí me aconselharam fazer mais direto:
plan1.visible=xlhidden
ou
plan1.visible=xlvisible,
mas continua retornando erros em planilhas diferentes a cada vez e qdo executo a macro pela tecla de atalho, ou pelo visualizador de macros ela executa sem erro.
Obrigado
Rui Martins
Respostas
-
Visible é uma propriedade do objeto Worksheet que pode ter três estados: xlSheetVisible, xlSheetHidden, xlSheetVeryHidden. Logo, usar True ou False não faz sentido para alterar essas propriedades.
---
Se você tiver apenas uma planilha visível numa pasta de trablaho e tentar oculta-la, obterá um erro. Se tentar tornar uma planilha visível que já estava visível antes, não obterá erro e ela continuará visível.
---
Se você está usando mais de uma pasta de trabalho na macro, pode ser que esteja obtendo erros porque Sheets("Monitoramento") é a mesma coisa que ActiveWorkbook.Sheets("Monitoramento"). Daí, se no momento da execução dessa instrução outra pasta de trabalho estiver ativa, o Excel tnetará acessar a planilha Monitoramento de outra pasta de trabalho que, se não existir, irá gerar um erro.
O mais seguro nesse caso é utilizar ThisWorkbook.Worksheets("Monitoramento"). Se quiser acessar outra pasta de trabalho, faça:
Sub Main() Dim wb As Workbook Set wb = Workbooks.Open("c:\pasta1.xlsx") wb.Worksheets("Plan1").Range("A1").Value = "Teste!" wb.Close SaveChanges:=False Set wb = Nothing End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 13 de maio de 2015 14:32
Todas as Respostas
-
Visible é uma propriedade do objeto Worksheet que pode ter três estados: xlSheetVisible, xlSheetHidden, xlSheetVeryHidden. Logo, usar True ou False não faz sentido para alterar essas propriedades.
---
Se você tiver apenas uma planilha visível numa pasta de trablaho e tentar oculta-la, obterá um erro. Se tentar tornar uma planilha visível que já estava visível antes, não obterá erro e ela continuará visível.
---
Se você está usando mais de uma pasta de trabalho na macro, pode ser que esteja obtendo erros porque Sheets("Monitoramento") é a mesma coisa que ActiveWorkbook.Sheets("Monitoramento"). Daí, se no momento da execução dessa instrução outra pasta de trabalho estiver ativa, o Excel tnetará acessar a planilha Monitoramento de outra pasta de trabalho que, se não existir, irá gerar um erro.
O mais seguro nesse caso é utilizar ThisWorkbook.Worksheets("Monitoramento"). Se quiser acessar outra pasta de trabalho, faça:
Sub Main() Dim wb As Workbook Set wb = Workbooks.Open("c:\pasta1.xlsx") wb.Worksheets("Plan1").Range("A1").Value = "Teste!" wb.Close SaveChanges:=False Set wb = Nothing End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 13 de maio de 2015 14:32
-