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

Probleme mit Workbook_Open

Probleme mit Workbook_Open
06.04.2006 11:25:34
Marco
Hallo,
Beim Öffnen einer Datei rufe ich mit "Workbook_Open()" diverse Startprozeduren auf.
Das klappt auch einwandfrei.
Um alle Änderungen verwerfen zu können, benutze ich folgendes Makro (aufgerufen über eine Userform):

Private Sub CMD_Nein_Click()
ThisWorkbook.Saved = True
Workbooks.Open ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
End Sub

Dadurch wird die Datei neu geöffnet, ohne sie vorher zu speichern. Auch dies klappt soweit.
Das "workbook_open"-Makro wird dabei aber nicht ausgeführt.
Kann mir jemand helfen, bzw. erklären, warum das so ist?
Danke im Voraus,
Marco

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Workbook_Open
06.04.2006 12:39:14
Heiko
Hallo Marco,
warum der dann nicht das "Workbook_Open()" Ereigniss auslöst, ist ne gute Frage. Im Einzelschritt Modus springt er jedenfalls auch nicht ins Workbook_Open() Ereigniss.
Laut Hilfe heist es:
"Tritt ein, wenn die Arbeitsmappe geöffnet wird."
Vielleicht ist dein Ansatz kein öffnen nach EXCEL Bedingungen.
Als Ansatz das Problem zu umgehen, nehme den Code aus Workbook_Open() packe ihn eine SUB oder FUNKTION in ein allgemeines Modul und starte diese extra SUB dann aus dem Workbook_Open() UND aus dem Private Sub CMD_Nein_Click(). Dann dürfte dein Problem gelöst sein.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Probleme mit Workbook_Open
06.04.2006 14:31:23
Marco
Hallo Heiko,
danke für Deine schnelle Antwort. Klappt so leider nicht.
Hier noch etwas mehr Hintergrundinfo:
Ich habe bei der Datei den Zugriff über Makro geregelt, es dürfen nur "registrierte" Benutzer auf die Datei zugreifen. Damit diese Zugriffsbeschränkung nicht einfach durch das Deaktivieren von Makros umgangen werden kann, habe ich alle Sheets mit xlveryhidden ausgeblendet. Sind die Makros deaktiviert, ist nur ein Sheet mit der Anweisung zum Aktivieren der Makros zu sehen. (Nach dem VBA-Beispiel "Nur mit Makros" von Hajo, http://home.media-n.de/ziplies/)
Sind Makros aktiviert, sollte jetzt durch workbook_open ein Makro gestartet werden, dass alle Sheets anzeigt, was ja beim normalen Öffnen ja auch funktioniert.
Da ich ja keine Speicherung vor dem neuen Aufruf mache, bringt es nichts, die Sheets vor dem neuen Öffnen einzublenden. Wenn ich das Makro zum Einblenden der sheets nach dem Workbooks.open - Aufruf einbaue, wird es schlichtweg übergangen.
Ich hoffe, das Ganze ist einigermassen verständlich.
Gruss, Marco
Anzeige
AW: Probleme mit Workbook_Open
06.04.2006 17:11:39
Marco
Hab das Ganze mal zum besseren Nachvollziehen auf das wesentliche reduziert:
Die msgbox soll bei jedem öffnen erscheinen, auch wenn die datei über das Makro refresh ohne speichern neu aufgerufen wird.
In "DieseArbeitsmappe":

Private Sub workbook_open()
Startprozedur
End Sub

in ein Modul:
Public Sub refresh()
ThisWorkbook.Saved = True
Workbooks.Open ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
End Sub
Public Sub Startprozedur()
msgbox "test"
End Sub
Anmerkung: Das Problem ist hier auf das wesentliche reduziert, da die eigentliche Datei recht komplex ist. Wenn dies funktioniert, sollte es eigentlich auf die Originaldatei übertragen werden können.
Wäre toll, wenn das jemand hinbekommt
Gruss, Marco
Anzeige
Hier die zugehörige Datei
06.04.2006 17:19:38
Marco
Funktion siehe vorherige Nachricht.
Über die Schaltfläche wird das Makro "refresh" gestartet.
Gruss, Marco
Frage noch offen...
06.04.2006 17:27:23
Marco
Sorry, bin neu in diesem Forum. Irgendwann schaff ich's dann mal auf Anhieb.
da ist noch ein Fehler drin...
11.04.2006 17:31:26
Marco
Hallo Heiko,
sorry, hatte 'n bisschen viel um die Ohren.
Velen Dank für Deine Lösung, aber 'nen Haken hat die Sache noch.
Beim Befehl Workbooks(strBook).Close wird das Makro beendet.
Die nachfolgenden Befehle, hier also Kill strPfadTemp, werden ignoriert.
Habe es mal versucht, indem ich den Kill-Befehl in die Startprozedur eingebaut habe:
https://www.herber.de/bbs/user/32777.xls
Das Problem bleibt jedoch das selbe. Auch hier wird das Makro direkt nach dem Schliessen des temporären Workbooks beendet und ich dieses so nicht mehr per Makro löschen kann. Ausserdem muss ich meine Startprozedur auf jeden Fall komplett durchlaufen lassen muss, bevor ich die Kopie schliesse.
Vielleicht fällt ja noch jemand was ein...
Gruss, Marco
Anzeige
letztendlich verwendete Lösung
13.04.2006 14:03:21
Marco
Hallo,
Hier nun meine verwendete Lösung:
https://www.herber.de/bbs/user/32838.xls
Habe das Ganze noch ein bisschen gekürzt.
Heiko, vielen Dank nochmals für Deine Hilfe,
Gruss, Marco

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige