Exit Sub führt zu Absturz in Excel2010
#1
Ich stehe vor einem Rätsel, in einer Datei wird durch die Anweisung "Exit Sub" Excel geschlossen mit der Meldung: "MS Excel funtioniert nicht mehr ..."
( für den Fall, das es wichtig ist):
.............................................................................................

Problemsignatur:
Problemereignisname: APPCRASH
Anwendungsname: EXCEL.EXE
Anwendungsversion: 14.0.7015.1000
Anwendungszeitstempel: 51cca83a
Fehlermodulname: ntdll.dll
Fehlermodulversion: 6.1.7601.17725
Fehlermodulzeitstempel: 4ec49b60
Ausnahmecode: c0000005
Ausnahmeoffset: 0002e096
Betriebsystemversion: 6.1.7601.2.1.0.256.4
Gebietsschema-ID: 1031
Zusatzinformation 1: 3822
Zusatzinformation 2: 3822e6295c033f95690349ebd54b4237
Zusatzinformation 3: 812c
Zusatzinformation 4: 812c5be961b10b01c3b4816842476eae
.............................................................................................

Ich kann nun an der Stelle auf Exit Sub verzichten, aber es erschließt sich mir nicht der Grund, warum das passiert. In Excel 2013 läuft es ohne Problem und da ich diese Anweisung an weiteren Stellen verwende und bisher nie Probleme bekannt wurden.

Code siehe Anhang

Vielen Dank für eine ev. Erklärung dieses Problems, wie gesagt, für mich nicht erklärlich.


Angehängte Dateien
.docx   BeforeDoubleClick.docx (Größe: 13,54 KB / Downloads: 19)
Top
#2
Hallo,

könntest Du eine Exceldatei hier hochladen? Ich habe insgesamt 5 Exit Sub-Zeilen gesehen, an welcher kommt es zum Absturz? Was steht in der Prozedur AltVerwenden?
Gruß Stefan
Win 10 / Office 2016
Top
#3
Hallo Stefan,

es ist das letzte Exit Sub in der Prozedur.
Sorry, wollte ich eigentlich markieren, schlicht vergessen...

in AltWerwenden wird der Inhalt diverser Felder in entsprechende andere Felder geschrieben und am alten Standort gelöscht.
Es ist eine Datei in der ein Angebot kalkuliert wird und die Alternativen Artikel -daher "Alt" an stelle der ursprünglichen Artikel verwendet "Verwenden" werden können.
Diese Prozedur läuft ohne Fehler durch.

Ich habe das gestern mal bei einem Kollegen testen lassen, dort lief es ohne Probleme...
Was ich mir noch vorstellen kann, das Ganze wurde in Excel 2013 erstellt (besser die neueste Version) und in 2010 verwendet.
Top
#4
Hallo!
Ich würde als erstes mal das On Error Resume Next herausnehmen.
Ich persönlich verwende es nur, wenn ich in der Folgezeile einen Fehler erwarten kann und setze den Fehler sofort wieder auf Null.
(Als Beispiel der Zugriff auf SpecialCells, die evtl. nicht vorhanden sind)
Ansonsten gibt Dir das Next nur eine Scheinsicherheit, die eben manchmal in unerwartetem Verhalten endet.

Ferner ist das letzte Exit Sub ohnehin überflüssig, weil danach nichts mehr kommt (wenn bis dahin kein Fehler, wird das Makro sowieso beendet, dann gibt es auch nichts was zurückgesetzt werden muss).

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
Danke erst mal, das Exit Sub habe ich auch schon rausgenommen, hatte ich im Eingangspost auch geschrieben. Mir geht es ja generell darum herauszufinden, woran es liegt, wenn es an ähnlicher Stelle wieder klemmt.

Das "On Error Resume Next" herausnehmen werde ich mal probieren.
Top
#6
Hallo Andi,

hmmm, viele Baustellen
setze mal ein Option Explicit an erste Stelle!

und es wäre von Vorteil wenn der ganze Code abgebildet wird.
Noch besser stelle eine anonymisierte Datei ein.

Das umwandeln in Spaltenbuchstaben, Goto  usw. sind nicht nötig...
mir fehlt auch ein Cancel =true bei Doppelklick ..., sonst bist du ja im Bearbeitungsmodus und das dann Excel crasht wundert mich nicht.
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Top
#7
Hi!
[Bezug zur PN]
Ich kann hier sehr wohl formatieren.
(Icon-Leiste im Antwort-Fenster)

Zum Thema:
Fehlerbehandlung ist wichtig, sie sollte aber nichts beschönigen, sondern ein Programm "gezielt abfliegen" lassen.
Ein gutes Tutorial in sieben Teilen: http://www.online-excel.de/excel/singsel_vba.php?f=144
Ich verwende stets etwas in dieser Art:
Code:
Sub Q()
Dim vZeile As Long
On Error GoTo Q_Error
vZeile = 1 / vZeile
On Error GoTo 0
Exit Sub
Q_Error:
MsgBox "Fehler " & Err.Number & " (" & Err.Description & ") in Prozedur Q in Modul Modul1"
End Sub
Dann weiß ich wenigstens, was da abging:

[url=
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#8
Hallöchen,

wenn Deine Variable artBezA keine auf Modul - oder Mappenebene ist, dann steckt da ein Fehler - siehe auch der Hinweis mit Option Explicit. Dann wäre auch noch die Frage, was sie enthält.

Du schreibst jedoch, dass Excel bei Exit Sub abstürzt. Ich nehme an, dass Du den code mit F8 schrittweise durchlaufen hast und dadurch zum Exit Sub gekommen bist? Wenn ja, kannst Du meinen ersten Satz mit der Variable gleich wieder streichen Smile

Wenn Du den oberen Teil mit dem Bereich 8 durchläufst, klappt es dort mit dem Exit Sub?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Hallo Zusammen,

erst mal Danke für die Antworten, ich komm gerade nicht dazu das alles durchzuspielen, Option Explicit wird auf jeden Fall eingerichtet, kommt davon, wenn man die Variablen nicht gleich deklariert, schießt man sich ein Eigentor.
Das mach ich inzwischen nicht mehr, alles neue wird sofort mit Option Explicit gemacht und Altlasten nach und nach aufgearbeitet.

Die Fehlerbehandlung werde ich mir auch gründlich anschauen und auch anwenden.
Habe ich so immer vernachlässigt, was sich nun rächt...

Aber wenn man sich alles selber beibringt, zäumt man an manchen Stellen das Pferd von hinten auf.

Sollte sich noch was ergeben, werde ich es hier mitteilen.

Danke
Martin
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste