Excel-Makro hält plötzlich an

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Kann es sich vllt um einfache Leerzeichen-Fehler handeln zu deren automatischer Behandlung mal ausreichend, mal zuwenig Speicher zur Verfügung steht?
m.W. richtig:
Application.DisplayAlerts = True (kein LZ vor Alerts)
Sheets.Add before:= Sheets("Tabelle99") (kein LZ vor = , vllt auch keins vor Sheets??-weiß ich nicht auswendig)
Sheets vllt durch eindeutiges Worksheets ersetzen, damit (automatische) Vorgabe-Suchschleife eingespart wird?
und dann such noch in der Zeile vor DispalyAlerts.
Vllt gibt es auch Nachlade-/Speicherfreimach-Probleme beim Einfügen neuer Arbeitsblätter (notwendige automatische Vergrößerung der Auslagerungsdatei)?
Schließe mal alles andere, vor allem den inet-Browswer, der braucht oft am meisten, v.a., wenn viele Tabs offen sind!
Ggf Windows und/oder xl neu starten (nur mal probeweise, damit ALLE Ressourcen dafür zur Verfügung stehen).


PinoGrigio 
Beitragsersteller
 05.08.2014, 15:24

Hier auch noch die Antwort drunter, damit spätere Generationen die Antwort auch unter der dazugehörigen Frage finden.

Also ist die Ursache sicher zu viele geöffnete Programme bzw. Tabs. Wenn ich einige Programme schließe ist der Fehler weg, wenn ich zu viele Anwendungen offen habe, kommt der Fehler wieder sporadisch vor.

Du hattest damit richtig vermutet:

Nachlade-/Speicherfreimach-Probleme beim Einfügen neuer Arbeitsblätter

LG PG

0

Da hört sich für mich so an, als ob eines der beiden Tabellenblätter nicht existiert.
Du kannst mit:

On Error Resume Next
'...
'Dein Code
'...
On Error GoTo 0

...erreichen, dass Laufzeitfehler in dem Bereich zwischen diesen beiden Zeilen ignoriert werden. Falls eines der Blätter nicht existiert oder ein anderer Fehler auftritt, wird also einfach nichts gemacht.
Damit solltest Du allerdings sehr vorsichtig umgehen, denn das ist Programmieren "mit dem Brecheisen".

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

PinoGrigio 
Beitragsersteller
 05.08.2014, 14:29

Hallo Oubyi,
nein alle benötigten Tabellenblätter existieren. Und wenn ich auf "Fortsetzen" klicke, läuft das Makro ja weiter, ohne etwas auszulassen, oder einen Fehler zu machen.
Trotzdem, Danke für deinen Brecheisen-Tipp ;-)
LG PG

0
Iamiam  05.08.2014, 11:20

@Oubyi: an die einfachsten Sachen denkt man oft nicht!
Aber müsste die Meldung dann nicht heissen: ..ausserhalb des gültigen Bereichs?

@Pino: Die Fehlernummer erhältst Du, indem Du sie einer Variablen zuweist und diese dann im Debug-Modus zeigen lässt:
vor on Error Goto 0 einfügen:

Fehler1 = Err() oder Err.Number (schau dazu in der Hilfe nach)

0
PinoGrigio 
Beitragsersteller
 05.08.2014, 14:25
@Iamiam

Hallo Iamiam,
erstmal vielen Dank für deine Tipps. Und weil dieser hier am einfachsten zu realisieren ist, habe ich den gleich getestet, hier ein beispielhafter Ausschnitt.

Dim iFehler1, iFehler2 As Integer


iFehler1 = Err.Number
iFehler2 = Err()
Debug.Print "Point 004 iFehler1: " & iFehler1, "iFehler2: " & iFehler2

Application.DisplayAlerts = False

iFehler1 = Err.Number
iFehler2 = Err()
Debug.Print "Point 005 iFehler1: " & iFehler1, "iFehler2: " & iFehler2

Ergebnis im Debug-Fenster:

Point 001 iFehler1: 0 iFehler2: 0
Point 002 iFehler1: 0 iFehler2: 0
Point 003 iFehler1: 0 iFehler2: 0
Point 004 iFehler1: 0 iFehler2: 0
Point 005 iFehler1: 0 iFehler2: 0
Point 006 iFehler1: 0 iFehler2: 0
Point 007 iFehler1: 0 iFehler2: 0
Point 008 iFehler1: 0 iFehler2: 0
Point 009 iFehler1: 0 iFehler2: 0
Point 010 iFehler1: 0 iFehler2: 0
Point 011 iFehler1: 0 iFehler2: 0
Point 012 iFehler1: 0 iFehler2: 0
Point 013 iFehler1: 0 iFehler2: 0

Ich hab das Programm 10 x laufen lassen, nichts, kein Fehler mehr. Na, dann...

LG PG

1
PinoGrigio 
Beitragsersteller
 05.08.2014, 15:15
@Iamiam

Hallo Iamiam,
ich hab die Debugstellen jetzt nochmals um- und richtiggestellt:
also nach jeder Code-Zeile, bei dem das Prog. schonmal ausgestiegen ist, ein On Error Goto EndMarke reingestellt und dann nach dieser EndMarke den Ausdruck der Debug-Variablen gemacht.
Dann ist das Programm schon bei der On Error Goto-Zeile stehen geblieben.

Also ist die Ursache sicher zu viele geöffnete Programme bzw. Tabs. Wenn ich einige Programme schließe ist der Fehler weg, wenn ich zu viele Anwendungen offen habe, kommt der Fehler wieder sporadisch vor.

Du hattest damit richtig vermutet:

Nachlade-/Speicherfreimach-Probleme beim Einfügen neuer Arbeitsblätter

LG PG

0

Kommentiere zum Testen einmal folgende Zeile aus oder setze den Wert auf False:

'Application.Display Alerts = True