Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
200to204
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler bei "Standartcode"

Laufzeitfehler bei "Standartcode"
09.01.2003 14:28:59
Manuel
Hallo Ihr XL's.

Ich habe im Moment ein Problem, das mich schon fast in die Verzweiflung treibt:

Ich habe eine LOG-Auswertung erstellt, und die einzelnen Subs haben alle problemlos funktioniert. Da die einzelnen Prozeduren aber immer nur eine Stunde auswerten können, habe ich eine "Mutter-Sub" erstellt, die die Unterfunktionen aufruft und die benötigten Parameter übergibt. Mit dabei ist eine (eigentlich sehr statische) Sub, die die Variablen nach Ihrer Berechnung zurück in ein Sheet schreibt. Und genau in dieser Sub liegt das Problem.
Zuerst der Code:

Jetzt zu dem Fehler:
Ich starte die "MutterSub" und sehe, wie die Auswertung startet. Die ersten 117 Durchläufe sind fehlerfrei, alles funktioniert wie gewünscht. Beim 118. Durchlauf bricht das Makro mit
-> Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler <-
einfach ab.
Als weitere Infos: Ich habe mit isdate geprüft, ob die Variable evtl. kein gültiges Datum ist, negativ.
Das CDate ist erst nach dem ersten Auftreten des Fehlers gekommen, auch das ThisWorkbook... (bis .Range...) war vorher per with gelöst.
Die betreffende Zelle ist nicht Schreibgeschützt und (mittlerweile) auch auf Uhrzeit eingestellt - sie hat sich ein paar Zeilen höher ja auch löschen lassen.
An einen Speicherüberlauf glaube ich inzwischen auch nicht mehr, da ein anderer Monat, in dem die Funktion 147 mal erfolgreich abgearbeitet wird, ohne Probleme läuft.
Und das der Inhalt der Variablen timeprkorr (laut Debug ->00:00:15<- = 15 Sekunden) was damit zu tun hat, kann ich auch nicht wirklich glauben.

Hat Irgendwer eine Idee, was das sein könnte?
Ich bin für jede Hilfe dankbar, da sonst doch eine ganze menge Zeit für nichts verloren wäre...

MfG,

Manuel

PS: der Fehler tritt bei Office 97, 2000 und XP auf...

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Laufzeitfehler bei "Standartcode"
09.01.2003 14:51:30
L.Vira
Warum da ein fehler auftritt, weiß ich nicht, aber du könntest den Code drastisch straffen und zudem noch stabiler machen:

Sub writeresults()
Dim TF As Worksheet
Set TF = ThisWorkbook.Sheets("transfer")
If m = "makro" Then ' Schutz, damit das Makro nicht direkt aufgerufen werden kann...
' alle Daten in den Feldern löschen
TF.[A1:E1,B6:B20].ClearContents
' "Datensatz1" schreiben (Zeiten)
TF.[A1] = CDate(mode3)
TF.[B1] = CDate(mode4)
TF.[C1] = CDate(mode5)
TF.[D1] = CDate(mode6)
TF.[E1] = CDate(mode7)
' restliche Zeiten schreiben
TF.[B6] = CDate(offtime)
TF.[B7] = CDate(prodtime)
TF.[B8] = CDate(timematwait)
TF.[B9] = CDate(timematwait2)
TF.[B10] = CDate(timeprkorr)
' ^ Diese Zeile macht das Problem - mehr weiter unten...
TF.[B11] = CDate(timedrkorr)
TF.[B12] = CDate(timeudkorr)
TF.[B13] = CDate(timekm)
TF.[B14] = CDate(timekp)
TF.[B15] = CDate(timedf1)
TF.[B16] = CDate(timedf2)
TF.[B17] = CDate(timedf3)
TF.[B18] = CDate(timepr1)
TF.[B19] = CDate(timepr2)
TF.[B20] = CDate(timeudef)
End If
End Sub

Anzeige
Re: Laufzeitfehler bei "Standartcode"
09.01.2003 14:58:45
Hajo_Zi
Hallo Manuel

ich kan mich L.Vira nur anschließen. Definiere das Makro als Private, dann kann es nicht über Extra Makro aufgerufen werden. Die Zellen brauchen nicht gelöscht werden, da Du ja allen Zellen neue Werte zuweist (welche auch immer)

Gruß hajo

Re: Laufzeitfehler bei "Standartcode"
09.01.2003 15:02:23
L.Vira
Es ist dennoch günstiger, Objektvariable zu verwenden(binding).
Re: Laufzeitfehler bei "Standartcode"
09.01.2003 15:09:32
Hajo_Zi
Hallo L.Vira

jeder hat so seine Arbeitsweise. Bei der Arbeit mit Objektvariablen sollte man aber zum Schluß die variable wieder Löschen
Set Tf = Nothing

Damit der Speicher wieder freigegeben wird.

Gruß hajo

Re: Laufzeitfehler bei "Standartcode"
09.01.2003 15:42:56
L.Vira
mit dem auf Nothing setzen hast du natürlich recht, mache ich eigentlich auch immer.
In dem anderen Punkt kann ich dir nicht zustimmen. Gerade in größeren Projekten sind Objektvariable ein Muss. Schau dir mal
die Ausführungen zu Binding an.
Anzeige
Re: Laufzeitfehler bei "Standartcode"
09.01.2003 15:47:13
Hajo_Zi
Hallo L.Vira

vielleicht sollte ich es auch annehmen. Aber es dauert auch seine Zeit bis man sich umgestellt hat. Viele Wege sind schon eingeschliffen.

Gruß Hajo

Re: Laufzeitfehler bei "Standartcode"
09.01.2003 15:48:41
Manuel
Hallo nochmal...

Erstmal danke für die Tipps, leider hat das nicht den gewünschten Erfolg gebracht - der Fehler tritt immer noch an der selben Stelle auf...

Mal schauen, ob ich das Problem weiter eingrenzen kann - evtl. kann ich das Problem dann auch selber lösen...

MfG,
Manuel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige