Workbook_SheetDeactivate die richtige Lösung?
11.10.2019 10:58:36
EasyD
ich habe ein Blatt "Datenerfassung" bei dem ich mit einer Prozedur
"Menue_on" eine Spalten einblende.
mit der Prozedur
"Menue_off" blende ich sie wieder aus.
Beide Codes laufen auf dem Blatt wie gewünscht
Ich möchte, wenn dieses Blatt verlassen wird IMMER "Menue_off" ausführen.
Auch das geht grundsätzlich, allerdings kann ich bei der Ausführung sehen, dass der Code eben nicht beim Verlassen des Blattes ausgeführt wird, sondern erst dann, wenn ich das Blatt wieder aktiviere.... Das versteh ich nicht.
Ideen? Oder andere Lösungsansätze?
Meine Lösung - in der Arbeitsmappe:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'Das Menü immer ausblenden, wenn die Datenerfassung verlassen wird
If ActiveSheet.Name = "Datenerfassung" Then
Application.ScreenUpdating = False
Call Menue_off
Application.ScreenUpdating = True
Else
Exit Sub
End If
End Sub
Und nur der Vollständigkeit halber der Code in einem Modul:Sub Menue_off()
'Das Menü links am Rand ausblenden, gleichzeitig den Bereich zur Datenerfassung wieder frei geben
Call Protect_off
Application.ScreenUpdating = False
'Pfeile über den Menüpunkten wieder weg
ActiveSheet.Shapes.Range(Array("Picture 36")).Visible = msoFalse
'Die Form über der Datenerfassung wieder entfernen
ActiveSheet.Shapes.Range(Array("Rectangle 4")).Select
With Selection.ShapeRange.Fill
.Visible = msoFalse
End With
'Die Menüspalten wieder ausblenden
ActiveSheet.Range("A:I").EntireColumn.Hidden = True
'Hilespalten ausblenden
ActiveSheet.Range("J:Q").EntireColumn.Hidden = True
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 5
Application.ScreenUpdating = True
Call Protect_on
End Sub
Anzeige