Prezados, boa noite.
Gostaria de saber se alguém pode me ajudar (mais uma vez). Criei uma planilha e apliquei a Estrutura de Tópicos. No normal cada item inclui 5 linhas e aplicando a estrutura ela oculta 3 das 5, ou seja, ficam apenas 2 para cada item. Daí tive a fabulosa ideia de gravar a macro pra facilitar a coisa - funcionou. O problema é que a planilha contempla 97 itens e, geralmente, não utilizarei os 97 itens. Traduzindo: se, por exemplo, eu excluir 10 itens (50 linhas) a macro retornará erro.
Basicamente, o que preciso é algum código de variável que, se a macro não encontrar as determinadas ranges prossiga para o próximo passo, até concluir.
Na realidade criei outra macro, que faz com que a estrutura de tópico volte ao normal (5 linhas por item).
Abaixo seguem as duas macros:
Sub Ocultar()
'
' Ocultar Macro
'
' Atalho do teclado: Ctrl+Shift+O
'
ActiveSheet.Outline.ShowLevels RowLevels:=1
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.SmallScroll Down:=18
Set ActiveSheet.HPageBreaks(1).Location = Range("A59")
ActiveWindow.SmallScroll Down:=21
Set ActiveSheet.HPageBreaks(2).Location = Range("A122")
ActiveWindow.SmallScroll Down:=18
Set ActiveSheet.HPageBreaks(3).Location = Range("A182")
ActiveWindow.SmallScroll Down:=27
Set ActiveSheet.HPageBreaks(4).Location = Range("A239")
ActiveWindow.SmallScroll Down:=12
Set ActiveSheet.HPageBreaks(5).Location = Range("A299")
ActiveWindow.SmallScroll Down:=21
Set ActiveSheet.HPageBreaks(6).Location = Range("A362")
ActiveWindow.SmallScroll Down:=24
Set ActiveSheet.HPageBreaks(7).Location = Range("A422")
ActiveWindow.SmallScroll Down:=9
Set ActiveSheet.HPageBreaks(8).Location = Range("A482")
ActiveWindow.SmallScroll Down:=18
ActiveSheet.HPageBreaks(9).DragOff Direction:=xlDown, RegionIndex:=1
With ActiveSheet.PageSetup
.Zoom = 70
End With
With ActiveSheet
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True
End Sub
Sub Exibir()
'
' Exibir Macro
'
' Atalho do teclado: Ctrl+Shift+I
'
ActiveSheet.Outline.ShowLevels RowLevels:=2
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.SmallScroll Down:=45
Set ActiveSheet.HPageBreaks(2).Location = Range("A77")
ActiveWindow.SmallScroll Down:=33
Set ActiveSheet.HPageBreaks(3).Location = Range("A112")
ActiveWindow.SmallScroll Down:=15
Set ActiveSheet.HPageBreaks(4).Location = Range("A147")
ActiveWindow.SmallScroll Down:=66
Set ActiveSheet.HPageBreaks(6).Location = Range("A217")
ActiveWindow.SmallScroll Down:=27
Set ActiveSheet.HPageBreaks(7).Location = Range("A252")
ActiveWindow.SmallScroll Down:=36
Set ActiveSheet.HPageBreaks(8).Location = Range("A287")
ActiveWindow.SmallScroll Down:=15
Set ActiveSheet.HPageBreaks(9).Location = Range("A322")
ActiveWindow.SmallScroll Down:=42
Set ActiveSheet.HPageBreaks(10).Location = Range("A357")
ActiveWindow.SmallScroll Down:=12
Set ActiveSheet.HPageBreaks(11).Location = Range("A392")
ActiveWindow.SmallScroll Down:=33
Set ActiveSheet.HPageBreaks(12).Location = Range("A427")
ActiveWindow.SmallScroll Down:=36
Set ActiveSheet.HPageBreaks(13).Location = Range("A462")
ActiveWindow.SmallScroll Down:=24
Set ActiveSheet.HPageBreaks(14).Location = Range("A497")
ActiveWindow.SmallScroll Down:=12
With ActiveSheet.PageSetup
.Zoom = 70
End With
With ActiveSheet
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True
End Sub
Mais uma coisa: preciso que o zoom fique em 70%, por isso incluí na macro. Conto mais uma vez com a ajuda e apoio de vocês.
Grato,
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/02/2012 4:09 pm