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

Makroausführung verhindern

Forumthread: Makroausführung verhindern

Makroausführung verhindern
14.09.2008 18:44:00
dera
Hallo
Wenn ich mit VBA eine Excel-Datei, die Makros enthält , öffne, erfolgt keine Makroabfrage(bei Sicherheitsstufe Mittel).
Wie kann ich bei der Workbook.Open Methode die Makroausführung verhindern
dera
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroausführung verhindern
14.09.2008 18:54:00
Ramses
Hallo
"....erfolgt keine Makroabfrage(bei Sicherheitsstufe Mittel)..."
Kann ich mir ehrlich gesagt nicht vorstellen.
Stell mal die Sicherheitseinstellung auf hoch und schau mal was dann passiert
Gruss Rainer
öffne die 2.Datei mal nicht durch ein Makro ...
14.09.2008 19:30:05
Matthias
Hallo
Zitat:
Wenn ich mit VBA eine Excel-Datei, die Makros enthält , öffne ...
Somit hast Du doch schon Makros aktiviert (in der offenen Datei - und die führt gearade Dein makro aus), oder ?
Versuch mal die Datei separat zu öffnen, dann kommt sicher die Abfrage.
evtl. lieg ich aber auch falsch, ich nutze "nur" ;o) - XL2000
Vielleicht gibt es ja sowas, wie vertrauenswürdige (Quellen,Dateien), in denen dann makro generell ausgeführt werden.
Ich meine mal gelesen zu haben das es in einer oder einigen Version(en) einen Ordner explizit dafür gibt.
Oder es ist eine digitale Signatur vorhanden.
Ich lass die Frage mal offen.
hier nochmal ein Link, grade gefunden.
"Vertrauens-Fenster"
https://www.herber.de/forum/archiv/892to896/t893018.htm#893025
ist es das ?
Gruß Matthias
Anzeige
AW: Makroausführung verhindern
14.09.2008 19:36:50
dera
Hallo
Die Sicherheitsstufe soll dabei aber "Mittel" bleiben.
Es ist von mir gewünscht das beim Öffnen ein Makroabfrage stattfindet aber soll die Makroausführung in durch Makros geöffneten Arbeitsmappen verhindert werden. Also man kann mit VBA, Arbeitsmappen öffnen, die Makro enthalten, ohne befragt zu werden(mal probieren).
Der Hintergrund ist, ich habe eine Arbeitsmappe in der mittels "Workbook_BeforeClose" und "Workbook_BeforeSave" Methode das Schliessen und Speichern komplizierten Bedingungen unterliegt. Da habe ich lange dran rum gefeilt und möchte da jetzt nicht mehr rumfummeln. Ich möchte die Datei via VBA öffnen, das noch was reinschreiben und durch Makrounterdrückung die oben genannten Events weglassen.
Anzeige
AW: Makroausführung verhindern
14.09.2008 20:22:00
Ramses
Hallo
Sorry,... das mit "öffnen über VBA" habe ich überlesen und das verhalten von EXCEL ist korrekt.
Um die Makroausführung zu verhindern verwende folgenden Ansatz
Application.EnableEvents = False
Workbooks.Open "Deine Datei"
Application.EnableEvents = True
ACHTUNG:
Du musst hier einen Fehlerhandler einbauen, der, falls ein Fehler beim öffnen der Datei auftritt, die Events wieder aktiviert.
Gruss Rainer
Anzeige
AW: Makroausführung verhindern
14.09.2008 19:14:26
Sigi
Hi Dera,
ich glaube, mit gedrückter Shift-Taste wird das workbook_open Ereignis umgangen. Ich meine das mal irgendwo gelesen zu haben. Probier's mal.
Gruß
Sigi
;
Anzeige

Infobox / Tutorial

Makroausführung in Excel verhindern


Schritt-für-Schritt-Anleitung

Um die Makroausführung beim Öffnen einer Excel-Datei über VBA zu verhindern, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub DateiOhneMakrosOeffnen()
       On Error GoTo FehlerHandler
       Application.EnableEvents = False
       Workbooks.Open "Pfad\zu\DeinerDatei.xlsm" ' Hier den Pfad zur Datei anpassen
       Application.EnableEvents = True
       Exit Sub
    FehlerHandler:
       Application.EnableEvents = True
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End Sub
  4. Passe den Dateipfad an:

    • Ersetze "Pfad\zu\DeinerDatei.xlsm" mit dem tatsächlichen Pfad deiner Datei.
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und führe das Makro aus, um die Datei ohne die Ausführung von Makros zu öffnen.

Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei:

    • Wenn die Datei nicht geöffnet werden kann, überprüfe den angegebenen Pfad und stelle sicher, dass die Datei existiert.
  • Makros werden trotzdem ausgeführt:

    • Stelle sicher, dass die Sicherheitsstufe in Excel auf "Mittel" bleibt. Überprüfe die Einstellungen unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center.
  • Anwendung stürzt ab:

    • Füge im Code einen Fehlerhandler hinzu, um sicherzustellen, dass Application.EnableEvents immer wieder aktiviert wird, selbst wenn ein Fehler auftritt.

Alternative Methoden

  • Öffnen mit gedrückter Shift-Taste:

    • Halte die Shift-Taste gedrückt, während du die Datei öffnest. Dies kann das Workbook_Open-Ereignis umgehen und somit die Ausführung von Makros verhindern.
  • Verwenden eines vertrauenswürdigen Speicherorts:

    • Platziere die Datei in einem vertrauenswürdigen Speicherort, um die Ausführung von Makros zu ermöglichen, wenn du dies möchtest.

Praktische Beispiele

  • Beispiel 1: Einfache Dateiöffnung ohne Makros:

    Sub OeffneDateiOhneMakros()
      Application.EnableEvents = False
      Workbooks.Open "C:\Beispiel\datei_mit_makros.xlsm"
      Application.EnableEvents = True
    End Sub
  • Beispiel 2: Fehlerbehandlung beim Öffnen:

    Sub OeffneMitFehlerbehandlung()
      On Error GoTo Fehler
      Application.EnableEvents = False
      Workbooks.Open "C:\Beispiel\datei_mit_makros.xlsm"
      Application.EnableEvents = True
      Exit Sub
    Fehler:
      MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
      Application.EnableEvents = True
    End Sub

Tipps für Profis

  • Regelmäßige Sicherung: Bevor du Änderungen an Makros vornimmst, erstelle immer eine Sicherungskopie deiner Datei.
  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Probleme schneller zu identifizieren.
  • Dokumentation: Kommentiere deinen Code gut, damit du und andere Nutzer verstehen, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Kann ich die Sicherheitsstufe in Excel ändern?
Ja, du kannst die Sicherheitsstufe unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center anpassen.

2. Was passiert, wenn ich Application.EnableEvents nicht setze?
Wenn du Application.EnableEvents nicht deaktivierst, werden alle Ereignisse (wie Workbook_Open) weiterhin ausgeführt, was die Ausführung von Makros ermöglicht.

3. Wie kann ich sicherstellen, dass mein Makro immer funktioniert?
Baue immer einen Fehlerhandler in dein Makro ein, um sicherzustellen, dass der Code auch bei Fehlern korrekt reagiert.

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