Workbook_Beforeclose sheets visible
07.11.2005 11:25:07
AnneM
ich möchte in meinem Makro sowohl beim Workbook_Beforesave Event als auch beim Workbook_Beforeclose Event bestimmte Worksheets ausblenden, damit sie beim erneuten Öffnen der Datei nicht sichtbar sind.
In beiden Events wird der identische Event Handler gestartet, in welchem dann zum Beispiel der folgende Befehl Worksheets("S_PW").Visible = False ausgeführt wird.
Das Problem ist, dass beim Workbook_Beforeclose Event alle Sheets problemlos ausgeblendet werden, während diese nach Ausführung des Workbook_Beforesave Events immer noch sichtbar sind, obwohl die identischen Befehle ausgeführt werden.
Dies sind die beiden Subs:
-------------------------------------------------------
Private Sub Workbook_Beforeclose(Cancel As Boolean)
Worksheets("S_Facer").Range("AT123").Value = ""
If Not ActiveWorkbook.Saved Then
Response = MsgBox("Do you want to save the changes you made to '" & ActiveWorkbook.Name & "'?", vbYesNo)
If Response = 6 Then 'vbYes pressed
ActiveWorkbook.Save
End If
End If
ReactivateFormatSheetMenu
ReactivateMacroMenu
ReactivateControlToolbox
ActiveWorkbook.Saved = True
End Sub
------------------------------------------------
Private Sub Workbook_Beforesave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
Worksheets("S_Facer").Range("AT123").Value = ""
End Sub
-------------------------------------------------
Dadurch, dass der Inhalt der Zelle AT123 gelöscht wird, wird dann folgender Event angestoßen und die Sheets sollten ausgeblendet werden:
(....)
ElseIf Target.Address = "$AT$123" Then
If Worksheets("S_Facer").Range("AT123").Value = "Contr. Office" Then
Sheets("S_PW").Visible = True
Sheets("S_CCView").Visible = True
ReactivateFormatSheetMenu
ReactivateMacroMenu
ReactivateControlToolbox
Else
Worksheets("S_PW").Visible = False
Worksheets("S_CCView").Visible = False
DeactivateFormatSheetMenu
DeactivateMacroMenu
DeactivateControlToolbox
End If
(...)
End Sub
---------------------------------------------
Ist ziemlch kompliziert, aber ich hoffe jemand hat eine Idee.
Vielen Dank!
Anne