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

Makro ausführen bei Schließen oder Speichern

Forumthread: Makro ausführen bei Schließen oder Speichern

Makro ausführen bei Schließen oder Speichern
08.07.2003 10:40:28
Christian
Hallo
ich habe ein großes Problem. Ich habe mir Arbeitsblatt geschaffen, was sich beim öffnen Daten aus anderen Workbooks holt. Diese Prozeduren funktionieren Einwandfrei. Nach dem Bearbeiten dieses Arbeitsblattes Speichert der Nutzer das Blatt und Schließt es. Dabei sollen nun Daten in eine andere Datei ausgelagert werden. Dafür habe ich auch ein Makro geschrieben, welches auch fehlerfrei läuft, solange es von Hand gestartet wird. Es kontrolliert ob die Auslagerungsdatei nicht evtl. geöffnet ist, bzw. öffnet diese wenn erforderlich, überträgt die Daten und speichert die Auslagerungsdatei ab, sowie schließt diese wenn zuvor nicht geöffnet.
Wie kann ich dieses Makro nun automatisch ablaufen lassen? Entweder wenn der Nutzer speichert oder Schließt. Ich habe es schon in dutzenden von Möglichkeiten mit before_close versucht, aber es will einfach nicht funktionieren.
Anbei noch die Befehlszeilen aus "Diese Arbeitsmappe":

Sub workbook_open()
Call Modul1.GrdListe
Call Modul1.Namensliste
End Sub


Sub Before_Close()
Call Modul1.auslagern
'Application.Run ("auslagern")
End Sub

Hoffe jemand kann mir helfen.
1000 Dank schon mal
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen bei Schließen oder Speichern
08.07.2003 10:53:57
RAnton
Hallo
es muß wohl so deklariert werden:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Modul1.auslagern
'Application.Run ("auslagern")
End Sub

Gruß
RAnton

AW: Makro ausführen bei Schließen oder Speichern
08.07.2003 11:18:14
Christian
1000 Danke nochmal
Jetzt läuft es!
Ciao Christian

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

Infobox / Tutorial

Automatisches Ausführen von Makros beim Schließen oder Speichern in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro beim Schließen oder Speichern auszuführen, kannst Du die Workbook_BeforeClose-Ereignisprozedur verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Finde Deine Arbeitsmappe: Im Projektfenster klicke auf "Diese Arbeitsmappe".

  3. Füge den Code ein: Kopiere und füge den folgenden VBA-Code ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Call Modul1.auslagern
    End Sub
  4. Speichere Deine Änderungen: Vergiss nicht, die Datei als Excel-Makro-aktivierte Arbeitsmappe (*.xlsm) zu speichern.

  5. Teste die Funktion: Schließe die Arbeitsmappe und überprüfe, ob das Makro automatisch ausgeführt wird.

Falls Du zusätzlich ein Makro beim Speichern ausführen möchtest, kannst Du auch das Workbook_BeforeSave-Ereignis nutzen:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Call Modul1.auslagern
End Sub

Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt
    Lösung: Stelle sicher, dass der Code im richtigen Modul (Diese Arbeitsmappe) eingefügt wurde. Überprüfe auch, ob die Makros in den Excel-Optionen aktiviert sind.

  • Fehler: Anwendung stürzt ab
    Lösung: Prüfe den Code auf Endlosschleifen oder andere Fehler. Füge Debugging-Optionen hinzu, um den Fehler zu identifizieren.

  • Fehler: Makro läuft nicht beim Schließen
    Lösung: Stelle sicher, dass Du die Prozedur als Private Sub Workbook_BeforeClose deklariert hast und dass es keine anderen Prozesse gibt, die das Schließen der Arbeitsmappe verhindern.


Alternative Methoden

Wenn das Ausführen eines Makros beim Schließen oder Speichern nicht funktioniert, gibt es alternative Ansätze:

  • Excel Auto Close: Du kannst ein Makro so gestalten, dass es beim Schließen einer Datei automatisch ausgeführt wird, indem Du es in das Workbook_Open-Ereignis einfügst.

  • Outlook Script ausführen: Wenn Du mit Outlook arbeitest, kannst Du VBA nutzen, um Skripte in Outlook auszuführen, wenn Du eine Excel-Datei schließt.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du ein Makro ausführen kannst:

  1. Daten in eine andere Datei übertragen:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Call Modul1.auslagern
       ' Hier kannst Du weitere Schritte zum Speichern der Daten hinzufügen
    End Sub
  2. Automatisches Speichern beim Schließen:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Me.Save
       Call Modul1.auslagern
    End Sub

Tipps für Profis

  • Makros effizient nutzen: Verwende Application.DisplayAlerts = False, um Warnmeldungen zu unterdrücken, wenn Du Makros ausführst, die Dateien automatisch speichern oder schließen.

  • Debugging: Setze Haltepunkte im VBA-Editor, um den Code Schritt für Schritt zu überprüfen und Fehler zu identifizieren.

  • Dokumentation: Halte Deinen Code gut dokumentiert, sodass Du oder andere Benutzer später verstehen, was jeder Teil des Codes tut.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Makros beim Schließen ausführen?
Du kannst mehrere Call-Befehle in der Workbook_BeforeClose-Prozedur verwenden, indem Du einfach weitere Call-Anweisungen hinzufügst.

2. Funktioniert das auch in Excel 365?
Ja, der Code funktioniert in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.

3. Was ist der Unterschied zwischen BeforeClose und BeforeSave?
BeforeClose wird ausgeführt, wenn die Arbeitsmappe geschlossen wird, während BeforeSave beim Speichern der Arbeitsmappe ausgeführt wird.

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