HERBERS Excel-Forum - das Archiv

Thema: Excel-Absturz | Herbers Excel-Forum

Excel-Absturz
weigand

Hallo, ich weiss mal wieder nicht weiter und hoffe auf Hile.
Ich arbeite mit Windows 7, Office-Excel 2007 bzw. 2010 beta im Kompatibilitätsmodus. Nun gibt es eine umfangreiche Anwendung, die aus einzelnen Mappen besteht, die über Command-Buttons aufgerufen werden. In jeder Mappe befindet sich ein Command-Button "Programm beenden". Dieser ruft ein Programm auf, das im wesentlichen nur sagt "activeworbook.close", was wiederum das Ereignis "before close" aufruft, in dem abgefragt wird "if .save=false then .save". DisplayAlerts ist auf False gesetzt.
Und jetzt das Problem: Excel stürzt ab, meldet "Excel funktioniert nicht mehr", startet Excel neu.
Ich vermute nun, dass meine Programmsteuerung "nicht sauber" ist und dieses Probelem auslöst. Habe bereits versucht, anstatt "ActiveWorkbook.close" "ActiveWindow.close" zu verwenden, hat aber nix gebracht.
Hat jemand vielleicht das gleiche Problem oder einen Tip, wie Mappe Schliessen, Änderungen speichern und Aktivierung noch geöffneter Mappe ohne Excel-Absturz funktioniert?
Vielen Dank.

AW: Excel-Absturz
Hajo_Zi

Hallo Weigand,
ist es nich .Saved das geprüft werden sollte?

AW: Excel-Absturz
weigand

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
AW: Excel-Absturz
weigand

Hallo Hajo,
mir ist noch folgendes aufgefallen:
- wenn ich nicht über meinen command-button "Programm beenden" gehe, sondern nur das Schliesskreuz für das fenster benutze habe ich keinen absturz
- also habe ich es statt "Workbook.Close" auch mit "ActiveWindow.close" probiert. Hat aber auch nicht funktioniert.
gruß
fred
AW: Excel-Absturz
atilla

Hallo Weigand,
das kann daran liegen, dass der Focus auf der Befehlsschaltfläche bleibt.
Den Focus kannst Du wegnehmen, indem Du eine beliebige Zelle selectierst.
AW: Excel-Absturz
weigand

Habe ich entsprechend eingegeben, hat leider nichts am Excel-Absturz geändert. Trotzdem Danke Attila.