Notifications
Clear all

[Resolvido] Ocultar / reexibir guias

4 Posts
3 Usuários
2 Reactions
4,158 Visualizações
(@tauron)
Posts: 13
Eminent Member
Topic starter
 

Tenho uma pasta de trabalho com mais de trinta guias (abas)  e, pretendo ocultá-las, exceto a principal. Então irei inserir uma macro para visualizar por exemplo a Guia "P25" (já está ok). Mas, como criar uma macro onde irei ocultar a guia ativa (pensei em uma macro global, onde e poderia atribuí-la a todas as guia que serão ocultadas).

Achei um video que tinha esta macro, mas está dando erro do compilação

Dim NomePlan As String

NomePlan = ThisWorkbook.Name

Dim Nplan AS Integer

NPlan = Workbooks.count

If NPlan > 1 Then

NomePlan.visible = xlSheetVeryHidden

end if

 
Postado : 15/08/2020 7:58 pm
(@srobles)
Posts: 231
Estimable Member
 

@tauron

 

Este erro de compilação ocorre, pois você pretende (pelo o que entendi) ocultar determinadas guias da sua pasta de trabalho, porém a macro apresentada usa como referência o objeto WorkBooks.

Experimente o que se segue, adaptando á sua realidade :

Dim contGuias As Long

With ThisWorkbook
For contGuias = 1 To .Sheets.Count
If .Sheets(contGuias).Name <> "Planilha1" Then
.Sheets(contGuias).Visible = xlVeryHidden
Else
.Sheets(contGuias).Visible = True
End If
Next
End With

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 17/08/2020 12:50 am
tauron reacted
(@tauron)
Posts: 13
Eminent Member
Topic starter
 

Então srobles,

Quando eu disse:

"pretendo ocultá-las, exceto a principal. Então irei inserir uma macro para visualizar..."

quiz dizer que exceto a guia plan1, todas as outras seriam ocultadas (xlsheetveryhidden) e que criaria (criei) uma macro para chamar cada uma delas em específico (isso está ok). Então pensei que como o inverso(ocultar a guia reexibida), seria o mesmo procedimento para todas as outras guias (exceto a plan1), bastaria uma única macro.

Já na sua marco, está dando - Erro em Tempo de Execução '1004'! Não foi possível definir a propriedade visible da classe Worksheet.

apontando para a linha

.Sheets(contGuias).Visible = xlVeryHidden
 
Postado : 17/08/2020 8:31 am
(@teleguiado)
Posts: 142
Estimable Member
 

@tauron

Utilizo o código abaixo para fazer algo parecido com o que você quer, veja se não consegue adaptar para a sua planilha:

 

Private Sub Button_Click()
Dim ws As Worksheet
Application.ScreenUpdating = False
NomeArquivo = ThisWorkbook.Sheets("Controle de Acesso").Range("e1")
Windows(NomeArquivo).Activate
ThisWorkbook.Worksheets("Planilha1").Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Planilha1" Then
ws.Visible = xlSheetVeryHidden
End If
Next ws
Application.Windows(NomeArquivo).Visible = True
Application.Visible = True
Application.ScreenUpdating = True
Worksheets("Planilha1").Activate
Cells(6, 2).Select
MainForm.Hide
End Sub

 

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 17/08/2020 3:06 pm
tauron reacted