Hallo Hajo,
hast recht. die korrekte Routine lautet:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
With Me
If .Saved = False Then .Save
End With
End Sub
und davor:
Sub ChangeAnwendung()
On Error GoTo Fehlerbehandlung
Application.ScreenUpdating = False
'================================================================================
' firma wechseln, alte datei speichern, neue datei öffnen
'================================================================================
blatt = "": PGM = "ChangeAnwendung": modul = "AnwendungWechseln"
Application.DisplayStatusBar = True
Application.StatusBar = "Rating sichern"
Application.DisplayAlerts = False
ThisWorkbook.Close True
'Workbooks(WorkbookAnwendungAktuell).Close
Exit Sub
'-----------------------------------------------------------------
Fehlerbehandlung:
'-----------------------------------------------------------------
If SoundSteuerung = True Then Call sndPlaySound32(Pfad & "FehlerGemacht.wav", 1)
Select Case Err.Number
Case 11
MsgBox Err.Description
Exit Sub
Case Else
MsgBox "Es ist ein Fehler aufgetreten. Die Fehlerbeschreibung lautet: " & vbCrLf & _
vbCrLf & "Blatt: " & blatt & vbCrLf & _
vbCrLf & "Fehler: " & Err.Number & _
vbCrLf & Err.Description & _
vbCrLf & "Programm: " & PGM & _
vbvrlf & "Modul: " & modul & _
vbCrLf & vbCrLf & "Bitte notieren und mir ansagen." & _
vbCrLf & vbCrLf & "Das Programm wird abgebrochen. Eine korrekte Bearbeitung ist nicht gewährleistet."
Err.Clear
Exit Sub
End Select
Err.Clear
End Sub
gruß
fred