Registriert seit: 18.04.2014
Version(en): Office 2010
Hallo liebe Experten von Excel,
ich habe ein Tabellenblatt mit Namen "START".
Hier gibt es zahlreiche Commandbutton, die bei Klick das entsprechende Blatt anspringen.
Jetzt möchte ich, dass bei einem Klick aufs Kreuz oben rechts nicht die übliche Frage nach Speichern und dann Ende kommt,
sondern, dass das Klicken aufs Kreuz automatisch wieder zurück zum Tabellenblatt "START" geht.
Und hier soll der User dann die Datei speichern können.
Das Speichern der Datei klappt, aber der Sprung durch das Klicken aufs Kreuz nicht.
Kann mir da jemand sagen wie der Code dafür heißen muss?
Vielen Dank
Gruß Achim
Registriert seit: 15.04.2018
Version(en): 2013
Hi
im Modul "DieseArbeitsmappe":
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveSheet.Name <> "Start" Then
Sheets("Start").Select
Cancel = True
End If
End Sub
wobei das auch läuft, wenn du versuchst die Mappe auf andere Weise zu schließen (Menü Datei-Schließen, STRG+F4)
Gruß Daniel
Registriert seit: 22.11.2019
Version(en): 365
Hallo Achim,
ergänzend zu Daniels Beitrag hier eine Variante, die
nur auf das Systemkreuz reagiert.
Siehe auch diesen Beitrag
https://www.clever-excel-forum.de/Thread...k-abfangenCode:
' Code in "DieseArbeitsmappe"
Private Declare PtrSafe Function GetWindowRect Lib "user32" ( _
ByVal hwnd As LongPtr, lpRect As RECT) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Function CheckSystemkreuzClick() As Boolean
Dim PT As POINTAPI, R As RECT
GetCursorPos PT ' Mausposition holen
GetWindowRect Application.hwnd, R ' Maße des Excelfensters holen
If PT.x < R.Right And PT.x > (R.Right - 68) And _
PT.y > R.Top And PT.y < R.Top + 50 Then CheckSystemkreuzClick = True
End Function
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If CheckSystemkreuzClick Then
If ActiveSheet.Name <> "Start" Then
Sheets("Start").Select
Cancel = True: Exit Sub
End If
End If
End Sub
_________
viele Grüße
Karl-Heinz
Folgende(r) 1 Nutzer sagt Danke an volti für diesen Beitrag:1 Nutzer sagt Danke an volti für diesen Beitrag 28
• Egon12
Registriert seit: 18.04.2014
Version(en): Office 2010
04.07.2025, 20:39
(Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2025, 20:39 von maine-coon.)
Hallo,
erst einmal vielen Dank für die Lösung zu meinem Anliegen.
Ich habe die Version von Daniel mal eingebaut.
Die ist kurz und funktioniert genau nach meinen Vorstellungen.
Die Variante von Karl-Heinz sieht relativ kompliziert aus.
Ich habe sie nicht getestet, weil die von Daniel bereits super funktioniert.