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

Makro-Abbruch ohne Fehler bei Öffnen einer Datei

Makro-Abbruch ohne Fehler bei Öffnen einer Datei
08.08.2007 11:26:40
meistergeist
Hallo,
ich habe ein mir unerklärliches Phänomen festgestellt und hoffe, dass einer von euch vielleicht eine Lösung zu dem Problem hat.
Ich öffne in einem Makro eine andere Exceldatei. Ich möchte danach ein Makro der geöffneten Datei aufrufen. Beide Dateien enthalten die Funktionen Workbook_BeforeClose, Workbook_Open, Workbook_Activate und Workbook_Deactivate.
Das Makro Workbook_BeforeClose der zu öffnenden Datei enthält den Funktionsaufruf

Result = MsgBox(Mldg, Stil, Titel, "", 0)


Durch diese Zeile wird die Datei zwar geöffnet, aber die Makros in der Datei nicht aktiviert. Außerdem bricht das aufrufende Makro an dieser Stelle ohne einen Fehler zu werfen ab.
Abgesehen davon, dass die Funktion Workbook_BeforeClose als Fehlerursache beim Öffnen der Datei überhaupt keinen Sinn macht, funktioniert in einem Testszenario mit anderen Dateien der Aufruf der MsgBox schon. In meinen Dateien ist der Fehler aber reproduzierbar.
Ist jemandem von sowas schon untergekommen und wie habt ihr das gelöst? Auch sonst bin ich für jeden Vorschlag dankbar, auch wenn ihr das wahrscheinlich nicht nachbauen könnt (in meinen Testdateien klappt es ja auch...)
Vielen Dank und Grüße,
meistergeist

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 11:45:00
Ramses
Hallo
Bei deinem Level trau ich mich fast nicht :-)
"...Durch diese Zeile wird die Datei zwar geöffnet, aber die Makros in der Datei nicht aktiviert. ..."
Das versteht kein Mensch. Was hat die Msgbox mit dem Datei öffnen zu tun ?
Ich hoffe aber schon, dass hier
Result = MsgBox(Mldg, Stil, Titel, "", 0)
die entsprechenden Variablen sowohl deklariert wie auch gefüllt sind.
Tur mir leid, aber ohne die anderen Codes sehen zu können, kann das nicht nachvollzogen werden.
Gruss Rainer

AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 11:53:58
meistergeist
Die Variablen sind natürlich gefüllt, das ist aber für das Problem aber unerheblich.
Ich verstehe halt nicht, wieso eine MsgBox in der Funktion Workbook_BeforeClose einen Einfluss auf das Öffnen einer Datei hat!
VG,
meistergeist

Anzeige
AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 11:58:00
Ramses
Hallo
Wenn du die beiden Dateien so sehr verflechtest,
"...Beide Dateien enthalten die Funktionen Workbook_BeforeClose, Workbook_Open, Workbook_Activate und Workbook_Deactivate..."
könnte es sein, dass Sie sich gegenseitig beeinflussen.
Wie gesagt ohne die Dateien zu kennen, ist das nicht nachvollziehbar.
Einzelschrittmodus schon mal probiert ?
Gruss Rainer

AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 12:20:38
meistergeist
Stimmt. Das habe ich ganz vergessen zu erwähnen, nachdem ich darauf gekommen bin, welche Zeile den Fehler verursacht.
Setze ich nur auf die Zeile mit Workbook.Open eine Haltemarke, so funktioniert auch alles. Das heisst also auch, dass das öffnen eigentlich ohne Probleme funktioniert (inklusive Deactivate und Activate). Allerdings braucht Excel davor eine kleine Gedankenpause (Vor dem Workbook.Open Excel mit dem Befehl Application.Wait ein paar Sekunden anzuhalten, bringt übrigens auch nichts).
VG,
meistergeist

Anzeige
AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 12:24:00
Ramses
Hallo
Keine Haltepunkte setzen, sondern mit F8 vom aufrufenden makro aus das ganze im Einzelschritt durchgehen !!
Nun lass dir nicht alles einzeln aus der Nase ziehen,... was steht in dem Open-Ereignis
Gruss Rainer

AW: Makro-Abbruch ohne Fehler bei Öffnen einer Dat
08.08.2007 14:25:01
meistergeist
Hallo Rainer,
mit Einzelschritten funktioniert das ganze natürlich auch. Ein Programm in Einzelschritten auszuführen ist nichts anderes, als auf jede Zeile einen Haltepunkt zu setzen (natürlich nur virtuell). Es ist aber schon ausreichend, auf die Zeile

Workbooks.Open ("Zu öffnende Exceldatei.xls")


einen Haltepunkt zu setzen. Ich nehme an, du hast diese Zeile gemeint. Mir ist nicht bekannt, wie in einem "Open-Ereignis" etwas stehen kann... Was in der Funktion Workbook_Open der Dateien steht, hat auch keinen Einfluss auf den Erfolg des Makros.
VG,
meistergeist

Anzeige
Noch offen...
08.08.2007 14:42:11
Ramses
Hallo
"..hat auch keinen Einfluss auf den Erfolg des Makros...."
Bei deinem Level hätte ich ehrlich was anderes erwartet.
"...Mir ist nicht bekannt, wie in einem "Open-Ereignis" etwas stehen kann..."
Schon mal was von Workbook_Open() gehört ?
Natürlich hat das Einfluss. Es ist schliesslich relevant ob im Open-Ereignis eine Anweisung steht wie
ThisWorkBook.Close oder ActiveWorkbook.Close
Dann trtt nämlich plötzlich das von dir genannte Phänomen in einer Datei auf, wo es gar nicht gehen soll.
Aber eben... du zeigst den Code nicht. und das ganze ist für mich nur ein Ratespiel.
Daher steige ich hier aus.
Gruss Rainer

Anzeige
AW: Noch offen...
08.08.2007 15:21:13
meistergeist
Hallo Rainer,
Sorry wenn ich dich jetzt hier noch verbessern muss: Aber Workbook_Open ist eine Funktion, die bei dem Eintritt des Ereignis (Event) "Öffnen der Datei" von Excel aufgerufen wird.
Ich kann die Exceldatei nicht einfach online stellen, da sie Kundendaten enthält, die ich nicht ins Internet stellen kann und will.
Deine widersprüchliche Aussage verstehe ich auch nicht. "Bei meinem Level" kannst du mir auch zutrauen, dass meine Aussagen auch richtig sind. Wenn ich sage, der Quelltext der Prozedur Workbook_Open hat keinen Einfluss auf den Erfolg des Makros, dann ist dem auch so. Natürlich wird die Datei nicht sofort wieder geschlossen. Abgesehen davon funktioniert das Makro auch nicht, wenn ich die Workbook_Open Methode komplett entferne.
Das Problem liegt wirklich NUR an der Sub Workbook_BeforeClose und NUR an der Zeile

Result = MsgBox(...)


Ich weiss wirklich nicht, wo und wie ich dich beleidigt habe. Ich fasse deinen "Ausstieg" als Kapitulation vor dem Problem auf...
Vielleicht findet sich ja noch jemand, der eine Idee dazu hat.
Viele Grüße,
meistergeist

Anzeige
AW: Noch offen...
08.08.2007 16:08:50
Ramses
Hallo
"..Aber Workbook_Open ist eine Funktion, die bei dem Eintritt des Ereignis (Event)..."
Daher wird es als eben als solches bezeichnet und nicht nicht als Funktion. (Siehe auch in der Online-Hilfe unter "Events" zum Workbook-Objekt)
Diesen Begriff "Function" gibt es im Zusammenhang mit Workbook/Sheet-Klassenobjecten nicht, es gibt allenfalls noch Methoden, aber ich denke wir müssen uns hier nicht auf Spitzfindigkeinten auslassen.
Aber meinen Ausstieg hast du richtig interpretiert:
Ich habe keine Ahnung was auf deinem Rechner schief läuft und meine Glaskugel hat Urlaub :-)
Gruss Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige