Memorizing current outline

  • Thread starter Thread starter rlenaers
  • Start date Start date
R

rlenaers

Hi,

I'm using excel 2000 and I'm trying to memorize the current outline to
be able to restore it later.

I tried this on the following sheet, the 3 "a"s are grouped and the 3
"b"s to.

a 1
a 2
a 3
b 1
b 2
b 3


Sub TEST()
Dim PLAN As Outline

Set PLAN = ActiveSheet.Outline ' memorize the outline
ActiveSheet.Outline.ShowLevels 2 ' modify it
MsgBox "hello"
Set ActiveSheet.Outline = PLAN ' want to restore it
' but get an error
here
End Sub


I am able to memorize the current outline but I am not able to restore
it ...

Anyone has an idea of how to proceed ?

Thanks for any hints.

René.
 
You have not memorised the outline, but merely set a variable name to
the object so you can use :-
'-----------------------------
Dim PLAN As Outline
Set PLAN = ActiveSheet.Outline
PLAN.ShowLevels rowLevels:=3, columnLevels:=1
'------------------------------

I think you will need something like this :-
'-----------------------------------------
Dim RowLevels(100)
Dim ColLevels(256)
'-----------------------------------------
Sub RecordOutline()
For rw = 1 To 100
RowLevels(rw) = ActiveSheet.Rows(rw).OutlineLevel
Next
For col = 1 To 256
ColLevels(col) = ActiveSheet.Rows(col).OutlineLevel
Next
End Sub
'-----------------------------------------
Sub ResetOutline()
For rw = 1 To 100
ActiveSheet.Rows(rw).OutlineLevel = RowLevels(rw)
Next
For col = 1 To 256
ActiveSheet.Columns(col).OutlineLevel = ColLevels(col)
Next
End Sub
'-----------------------------------------------
The arrays are not permanent. If these routines are not called from
the same macro you will need to hold the values in a worksheet instead
(perhaps in hidden rows/columns of the Activesheet). eg. ........

ActiveSheet.Rows(rw).OutlineLevel = ActiveSheet.Cells(rw,1).Value

Regards
BrianB
==================================
 
Back
Top