Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Trace aus einem VBA-Makro mitschreiben

Trace aus einem VBA-Makro mitschreiben
04.01.2005 15:23:44
Richard
Hallo Forum,
ich steuere über eine EXCEL-Datei (bzw. über deren Macros) die (automatische) Bearbeitung weiterer Excel-Dateien (indem ich dort wiederum eingebette Makros anstoße).
Ich möchte nun etwaige Fehler in den einzelnen Dateien (ein "Fehleranzeigemacro" ist in den Dateien schon implementiert) statt an die Oberfläche (was den Automatismus stoppt) in eine Trace-Datei schreiben (das "Fehleranzeigemacro" müßte dafür sorgen).
Ich nehme an, das es relativ einfach geht - nur wie:
Meine Idee:
1) Übergabe eines Tracedateinamens an die Einzeldateien
2) Diverse Verarbeitungsmacros in den Dateien starten
3) Vor Ausstieg, Errorcheck und Successives Schreiben in die Tracedatei
Vor allem zu Punkt 3) habe ich noch keine Idee zur Umsetzung.
Ich danke herzlich für eine Antwort
Richard

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Trace aus einem VBA-Makro mitschreiben
Martin
Hallo Richard
Ich würde in jeder Prozedur eine Fehlerbehandlung einbauen, welche statt der üblichen Ausgabe mittels Msgbox in eine normale Textdatei schreibt. Beim ersten Fehler legst du die Datei neu an, bei jedem weiteren Fehler öffnest du die Datei, schreibst die gewünschte Fehlermeldung in eine neue Zeile und schließst die Datei wieder.
Am Ende der Prozedur, welche alle anderen Prozeduren aufruft, steuert usw., kontrollierst du, ob die Textdatei vorhanden ist. Wenn ja, kannst du alle Zeilen der Textdatei auslesen, in einer Msgbox ausgeben und die Textdatei wieder löschen.
Grüße
Martin
Anzeige
(Teil)Lösung
04.01.2005 15:39:15
Russi
Hi Richard!
Dafür müsstest Du meines Wissens Dein Fehleranzeigemacro etwas anpassen. Du könntest Dort bspw. weitere Zeilen mit aufnehmen, die den Eintrag in eine Datei durchführen:
Open ThisWorkbook.Path & Application.PathSeparator & "Errorlog.txt" For Append As #1
Print #1, Time & Err.Number & " " & Err.Description & Chr(13)
Close #1
Bestimmt ist auch die generelle Reaktion auf Fehler über ein Klassenmodul möglich, aber davon hab ich leider keine Ahnung :-(
Vielleicht hilfts Dir ja schon.
Viele Grüße
Russi
www.Russi.de.tt
Noch nicht ganz: Trace aus VBA-Makro
Richard
Hallo Martin und Russi,
um die Frage zu konkretisieren:
Ich möchte dem "Fehleranzeigemakro" bereits einen "lebenden" Filedescriptor (Trace-Datei) von außen (Steuerungsmacro einer Zentraldatei) übergeben. Im "Fehleranzeigemakro" der einzelnen Dateien werden dann nur mögliche Fehlertexte (oder was auch immer) auf die eine zentrale Trace-Datei geschrieben.
Da in der Größenordnung von 100 Dateien nacheinander bearbeitet werden, möchte ich nicht für jede bearbeitete Datei eine eigene Logdatei aufmachen.
Mir gehts um die Fragen:
1) Wie richte ich einen übergebbaren Filedescriptor ein (viele Macros nacheinander schreiben)
Hinweis: Es ist immer nur eine zu bearbeitende Datei (und daher eine Fehlertextquelle) gleichzeitig offen
2) wie schreibe ich dann darauf
3) wie schließe ich dann die Datei zentral
Danke noch einmal
Richard
Anzeige
AW: Noch nicht ganz: Trace aus VBA-Makro
04.01.2005 16:07:38
Russi
Hi Richard!
?!? Du musst ja nicht 100 verschiedene Dateien erstellen und verwalten. Du kannst selbstverständlich in Deinem Errorhandler eine zentrale Datei mit einer festen Pfadangabe beschreiben.
Open "C:\Errorlog.txt" For Append As #1
Print #1, Time & Err.Number & " " & Err.Description & Chr(13)
Close #1
Sicherlich kannst Du die Fehlerbehandlung auch "zentral" in einer Datei unterbringen und ggf. "von außen" aufrufen lassen: Call Fehlerbehandlung(err.number)
Dieser Aufruf müsste aber wiederrum in jeder einzelnen Datei eingebaut werden (oder wie gesagt in ein Klassenmodul, womit ich mich nicht auskenne)
Oder habe ich etwas falsch verstanden?
Viele Grüße
Russi
www.Russi.de.tt
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige