Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Workbook_Open beim starten unterdrücken

Workbook_Open beim starten unterdrücken
29.09.2004 14:17:21
Martin
Hallo,
ich möchte aus diversen, gleich formatierten Exceldateien Daten per VBA
auslesen. Dazu verwende ich ein Makro das die Datei öffnet, die Daten
ausliest uns wieder schließt.
Allerdings gibt es ein Problem:
===============================
Alle Dateien enthalten eine Makro, dass per Workbook_Open öffnet.
Die Ausführung dieses Makros möchte ich unterbinden.
Wie kann ich das in VBA realisieren ?
Gruss
Martin
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook_Open beim starten unterdrücken
29.09.2004 14:24:40
Oberschlumpf
Hi Martin
nur ne Idee..
Vielleicht so:

Sub DeinMakro()
...dein code...
Application.EnableEvents = False
Workbooks.Open Deine Excel-Datei
Application.EnableEvents = True
....Dein Code...
End Sub

Mein Gedanke ist, dass Application.EnableEvents = True erst dann ausgeführt wird, NACHDEM die Datei geöffnet wurde. Somit wird das Open-Makro in der gerad geöffneten Datei nicht durchgeführt....glaube ich :)
Konnte ich helfen?
Ciao
Thorsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Workbook_Open beim Starten Unterdrücken in Excel


Schritt-für-Schritt-Anleitung

Um das Workbook_Open-Ereignis in Excel VBA zu unterdrücken, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel. Das kannst du tun, indem du mit der rechten Maustaste auf ein Arbeitsblatt klickst und "Code anzeigen" wählst oder mit der Tastenkombination ALT + F11.

  2. Erstelle ein neues Modul, indem du im Projektfenster mit der rechten Maustaste auf "Module" klickst und "Einfügen" wählst.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Sub DeinMakro()
       Application.EnableEvents = False
       Workbooks.Open "Deine Excel-Datei.xlsx"
       ' Hier kannst du deinen Code zum Auslesen der Daten einfügen
       Application.EnableEvents = True
    End Sub
  4. Ersetze "Deine Excel-Datei.xlsx" mit dem tatsächlichen Pfad und Namen der Datei, die du öffnen möchtest.

  5. Speichere das Modul und schließe den VBA-Editor.

  6. Führe das Makro aus, indem du F5 drückst oder das Makro über die Excel-Oberfläche startest.


Häufige Fehler und Lösungen

  • Fehler: Das Makro öffnet die Datei, aber das Workbook_Open-Ereignis wird trotzdem ausgeführt.

    • Lösung: Stelle sicher, dass Application.EnableEvents = False vor dem Öffnen der Datei gesetzt ist. Überprüfe auch, dass du das richtige Makro ausführst.
  • Fehler: Das Makro läuft nicht oder gibt einen Laufzeitfehler aus.

    • Lösung: Überprüfe den Dateipfad und den Dateinamen. Vergewissere dich, dass die Datei existiert und dass du die richtigen Berechtigungen hast.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch andere Ansätze:

  1. Datei-Öffnen Dialog: Du kannst die Datei manuell öffnen und dabei die Shift-Taste gedrückt halten. Dies verhindert, dass die Workbook_Open-Ereignisse ausgeführt werden.

  2. Sicherheitsoptionen: In den Excel-Optionen kannst du die Makros deaktivieren, um sicherzustellen, dass beim Öffnen von Dateien keine Makros ausgeführt werden. Dies ist jedoch nicht ideal, wenn du andere Makros benötigst.


Praktische Beispiele

Ein einfaches Beispiel, das die oben genannte Methode anwendet:

Sub DatenAuslesen()
    Dim wb As Workbook
    Application.EnableEvents = False
    Set wb = Workbooks.Open("C:\Pfad\Zu\Deiner\Datei.xlsx")

    ' Hier kannst du Daten auslesen, z.B.:
    Dim wert As Variant
    wert = wb.Sheets(1).Cells(1, 1).Value

    wb.Close SaveChanges:=False
    Application.EnableEvents = True
    MsgBox "Wert aus Zelle A1: " & wert
End Sub

In diesem Beispiel wird der Wert aus Zelle A1 des geöffneten Arbeitsblatts ausgelesen und danach die Datei geschlossen, ohne dass das Workbook_Open-Event ausgeführt wird.


Tipps für Profis

  • Nutze Application.DisplayAlerts = False, um Excel vor dem Schließen von Arbeitsmappen keine Bestätigungsdialoge anzeigen zu lassen.

  • Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass Application.EnableEvents immer wieder auf True gesetzt wird, selbst wenn ein Fehler auftritt:

    On Error GoTo FehlerHandler
    ' Dein Code hier
    Exit Sub
    FehlerHandler:
       Application.EnableEvents = True
  • Teste deine VBA-Makros in einer sicheren Umgebung, um zu verhindern, dass unbeabsichtigte Änderungen an wichtigen Daten vorgenommen werden.


FAQ: Häufige Fragen

1. Funktioniert dieser Ansatz in allen Excel-Versionen? Ja, die Methode mit Application.EnableEvents funktioniert in den meisten aktuellen Excel-Versionen, die VBA unterstützen.

2. Was passiert, wenn ich EnableEvents auf False setze? Wenn EnableEvents auf False gesetzt ist, werden keine Ereignisse in Excel ausgeführt, einschließlich Workbook_Open. Du kannst dann die Datei öffnen, ohne dass das Makro in der Datei ausgeführt wird.

3. Kann ich mehrere Dateien gleichzeitig öffnen, ohne Workbook_Open auszuführen? Ja, du kannst mehrere Dateien nacheinander öffnen, indem du den Code in einer Schleife ausführst und Application.EnableEvents entsprechend verwaltest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige