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

Forumthread: Makro beim Schließen einer Datei ausführen

Makro beim Schließen einer Datei ausführen
nontacky
Hallo Leute,
trotz Archiv Recherche habe ich die Lösung nicht hinbekommen. Das Problem ist schnell beschrieben:
Ich möchte, dass das Makro "Sortieren_Projektplan_ID" beim Schließen der Datei "Projektplan.xlsm" automatisch immer ausgeführt wird. Da mehrere Leute darauf zugreifen, wäre es sehr gut, wenn dieses Makro nicht in der persönlichen Makro Mappe stehen muss, sondern in der "Projektplan.xlsm".
Ich habe ein wenig damit rumprobiert, aber es tut sich nichts.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Run ("Sortieren_Projektplan_ID")
End Sub
Weiß da jemand Rat?
Vielen Dank!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro beim Schließen einer Datei ausführen
10.04.2012 17:17:30
Albert
Hallo nontacky,
versuch doch statt Application.Run den Befehl CALL...
Mfg
Albert
AW: Makro beim Schließen einer Datei ausführen
10.04.2012 17:29:31
nontacky
Du meinst so?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Sortieren_Projektplan_ID
End Sub
?
Das funktioniert bei mir nicht. Ich kann das Makro halt irgendwie nicht testen (per F8).
Anzeige
AW: Makro beim Schließen einer Datei ausführen
10.04.2012 17:37:56
Albert
Hi...
liegt dein "Sortieren_Projektplan_ID" in einem Modul?
Hm, nicht testen? Hängt dein VBA vielleicht noch im Haltemodus?
Mfg
A
AW: Makro beim Schließen einer Datei ausführen
10.04.2012 17:44:26
nontacky
Hallo,
ja - das Makro Sortieren_Projektplan_ID liegt in Modul 1 und das "Private Sub Workbook_BeforeClose ist in Modul 2.
Kann man Makros noch woanders ablegen?
Viele Grüße,
N.
Anzeige
AW: Makro beim Schließen einer Datei ausführen
10.04.2012 18:23:41
Albert
Hi...
dein "Private Sub Workbook_BeforeClose" muss in "Diese Arbeitsmappe".
Mfg
Albert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro beim Schließen einer Excel-Datei ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel Makro beim Schließen einer Datei auszuführen, musst du den folgenden VBA-Code in das Modul „Diese Arbeitsmappe“ deiner Excel-Datei einfügen:

  1. Öffne die Excel-Datei, in der das Makro ausgeführt werden soll (z.B. „Projektplan.xlsm“).

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Suche im Projekt-Explorer nach „Diese Arbeitsmappe“.

  4. Doppelklicke auf „Diese Arbeitsmappe“ und füge den folgenden Code ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Call Sortieren_Projektplan_ID
    End Sub
  5. Stelle sicher, dass das Makro „Sortieren_Projektplan_ID“ in einem Modul deiner Arbeitsmappe gespeichert ist.

  6. Schließe den VBA-Editor und teste das Makro, indem du die Datei schließt.


Häufige Fehler und Lösungen

  • Makro wird nicht ausgeführt: Stelle sicher, dass der Code im richtigen Modul ist. Der Workbook_BeforeClose-Code muss unbedingt in „Diese Arbeitsmappe“ platziert werden.

  • Fehlermeldung „Sub oder Funktion nicht gefunden“: Überprüfe, ob das Makro „Sortieren_Projektplan_ID“ korrekt geschrieben und im richtigen Modul vorhanden ist.

  • Makro kann nicht getestet werden: Du kannst den Debugger nicht mit F8 verwenden, da das Makro nur beim Schließen der Datei ausgeführt wird. Stattdessen kannst du eine Testfunktion erstellen, um das Makro manuell auszuführen.


Alternative Methoden

Eine andere Möglichkeit, ein VBA Makro beim Schließen auszuführen, besteht darin, eine Schaltfläche oder ein anderes Steuerelement zu verwenden. Du kannst auch eine Excel persönliche Arbeitsmappe einblenden, um das Makro immer verfügbar zu haben.

Zusätzlich kannst du den Timer verwenden, um eine Datei automatisch zu schließen und dabei ein Makro auszuführen. Hierzu kannst du den folgenden Code verwenden:

Sub AutoClose()
    Application.OnTime Now + TimeValue("00:05:00"), "YourMacroName"
    ThisWorkbook.Close
End Sub

Praktische Beispiele

Nehmen wir an, du hast ein Makro namens „Sortieren_Projektplan_ID“, welches die Daten in deiner Excel-Datei sortiert. Um sicherzustellen, dass es beim Schließen der Datei ausgeführt wird, platziere den oben genannten Code im Modul „Diese Arbeitsmappe“.

Ein weiteres Beispiel könnte ein Makro sein, das Daten in eine andere Datei exportiert. Der gleiche Ansatz gilt: Vergewissere dich, dass das Makro korrekt referenziert wird.


Tipps für Profis

  • Nutze Fehlerbehandlung im VBA-Code, um unerwartete Probleme zu vermeiden. Zum Beispiel:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       On Error Resume Next
       Call Sortieren_Projektplan_ID
       On Error GoTo 0
    End Sub
  • Überlege, ob du eine Benutzereingabe integrieren möchtest, um den Benutzer zu fragen, ob das Makro ausgeführt werden soll, bevor die Datei geschlossen wird.

  • Halte deine Makros regelmäßig auf dem neuesten Stand, um sicherzustellen, dass sie weiterhin optimal funktionieren.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro bei jedem Schließen der Datei ausgeführt wird?
Du musst den VBA-Code im Modul „Diese Arbeitsmappe“ platzieren und sicherstellen, dass das Makro im richtigen Modul verfügbar ist.

2. Was mache ich, wenn ich mehrere Makros beim Schließen ausführen möchte?
Du kannst mehrere Call-Anweisungen hintereinander im Workbook_BeforeClose-Ereignis hinzufügen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Sortieren_Projektplan_ID
    Call AnderesMakro
End Sub

3. Wie kann ich das Makro jederzeit testen?
Erstelle eine separate Schaltfläche in deiner Excel-Datei, um das Makro manuell auszuführen, ohne die Datei schließen zu müssen.

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