Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Excel-Absturz | Herbers Excel-Forum


Betrifft: Excel-Absturz von: weigand
Geschrieben am: 12.12.2009 07:57:23

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.

  

Betrifft: AW: Excel-Absturz von: Hajo_Zi
Geschrieben am: 12.12.2009 08:33:16

Hallo Weigand,

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

GrußformelHomepage


  

Betrifft: AW: Excel-Absturz von: weigand
Geschrieben am: 12.12.2009 13:35:38

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


  

Betrifft: AW: Excel-Absturz von: weigand
Geschrieben am: 12.12.2009 13:43:29

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


  

Betrifft: AW: Excel-Absturz von: atilla
Geschrieben am: 12.12.2009 15:13:56

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.


  

Betrifft: AW: Excel-Absturz von: weigand
Geschrieben am: 12.12.2009 16:06:47

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