Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: alle arbeitsmappen und excel per makro schließen

alle arbeitsmappen und excel per makro schließen
juergen
Hallo und guten Morgen,
hoffe es geht euch allen gut, hab schon länger nichts mehr mit excel gemacht.
Irgendwie ist mein Hirn wohl eingeschlafen, kann mir bitte jemand mitteilen, wie ich ich es hinbekomme, dass wenn ich u. stehende Makro nutzte, alle aktiven Exceldateien und excel selber geschlossen wird sobald ich die u. stehende Datei schließe?
Bin echt müde und weis nicht mehr weiter.
Für Eure Hilfe bin ich wie immer sehr dankbar.
Gruß
J. Juergen
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Tabelle4").Select
Application.Goto Cells(Rows.Count, 10).End(xlUp).Offset(1), True
With Workbooks("lol.xlsm")
End With
If Workbooks.Count = 1 Then ' diese Datei
Application.Quit
End If
End Sub

Anzeige
AW: alle arbeitsmappen und excel per makro schließen
23.02.2012 06:02:17
Hajo_Zi
Hallo Jürgen,
Dedine Beschreibung past nicht zum Code. Ich halte mich mal an die Beschreibung. Ergänze
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WoDatei As Workbook
For Each WoDatei In Workbooks
If WoDatei.Name  ThisWorkbook.Name Then WoDatei.Close
Next WoDatei
ThisWorkbook.Close
End Sub

Anzeige
AW: alle arbeitsmappen und excel per makro schließen
23.02.2012 09:22:57
juergen
Guten Morgen zusammen,
Hallo Hajo,
ich weis nicht, wie ich es anders ausdrücken kann, ich versuche es halt noch mal, verzeiht mir jetzt schon einmal.
Also: ich habe in ca. 45 Dateien nachfolgendes Makro in verwendung:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Tabelle4").Select
Application.Goto Cells(Rows.Count, 10).End(xlUp).Offset(1), True
With Workbooks("Dateiname.xlsm")
End With
If Workbooks.Count = 1 Then ' diese Datei
Application.Quit
End If
End Sub
Frage:
Ich möchte das o. g. Makro so abändern, dass wenn ich die Datei schließe, nicht nur diese geschlossen wird, sondern alle offenen excel - Dateien und Excel auch - ohne Sicherheitsabfrage - !
Danke für Eure unterstützung. Schönen Tag an Alle.
Gruß
J. Juergen
Anzeige
AW: alle arbeitsmappen und excel per makro schließen
23.02.2012 10:19:19
Rudi
Hallo,
ganz hart, ohne Rückfragen:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.DisplayAlerts = False
.Quit
End With
End Sub

Gruß
Rudi
AW: alle arbeitsmappen und excel per makro schließen
23.02.2012 11:08:27
juergen
Hallo Rudi,
vielen dank für deine schnelle Antwort.
Klappt prima.
Frage, kannst du mir vieleicht noch eine Erweiterung einbauen, so das alle geöffneten Dateien beim schließen automatisch auch gespeichert werden?
Jetzt nochmals Danke an das Forum, ohne Foren wie diese wären das Leben nur halb so schön.
Gruß
J. Juergen
Anzeige
AW: alle arbeitsmappen und excel per makro schließen
23.02.2012 12:51:54
Rudi
Hallo,
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wkb As Workbook
For Each wkb In Workbooks
If Not wkb Is Me Then wkb.Close True
Next
Save
Application.Quit
End Sub

Gruß
Rudi

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Makro für alle Arbeitsmappen schließen


Schritt-für-Schritt-Anleitung

Um alle Arbeitsmappen und Excel über ein Makro zu schließen, kannst du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass alle offenen Arbeitsmappen geschlossen werden, ohne dass eine Sicherheitsabfrage erscheint:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wkb As Workbook
    For Each wkb In Workbooks
        If Not wkb Is Me Then wkb.Close True
    Next
    Application.Quit
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Wähle die Arbeitsmappe aus, in der du das Makro hinzufügen möchtest.
  3. Füge den obigen Code in das Codefenster des ThisWorkbook-Objekts ein.
  4. Schließe den VBA-Editor und speichere die Arbeitsmappe als xlsm, um die Makros zu aktivieren.

Jetzt wird beim Schließen der Arbeitsmappe automatisch Excel und alle offenen Arbeitsmappen geschlossen.


Häufige Fehler und Lösungen

  • Fehler: Excel fragt nach dem Speichern der Arbeitsmappen.

    • Lösung: Stelle sicher, dass du den Parameter True in der Close-Methode verwendest, um alle Änderungen zu speichern.
  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Überprüfe, ob das Makro in einer xlsm-Datei gespeichert ist und ob die Makros in deinem Excel aktiviert sind.

Alternative Methoden

Falls du eine andere Methode bevorzugst, um Excel zu schließen, kannst du den folgenden Code verwenden:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Application
        .DisplayAlerts = False
        .Quit
    End With
End Sub

Dieser Code schließt Excel sofort, ohne Rückfragen und ohne die Arbeitsmappen einzeln zu schließen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Makro anpassen kannst:

  • Automatisches Speichern vor dem Schließen:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wkb As Workbook
    For Each wkb In Workbooks
        If Not wkb Is Me Then wkb.Close True
    Next
    Application.DisplayAlerts = False
    Application.Quit
End Sub
  • Nur bestimmte Arbeitsmappen schließen:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim wkb As Workbook
    For Each wkb In Workbooks
        If wkb.Name Like "*.xlsm" Then wkb.Close True
    Next
    Application.Quit
End Sub

Tipps für Profis

  • Nutze die Workbook_BeforeClose-Ereignisprozedur, um spezifische Aktionen auszuführen, bevor die Arbeitsmappe geschlossen wird.
  • Teste dein Makro immer in einer Kopie deiner Arbeitsmappe, um ungewollte Datenverluste zu vermeiden.
  • Dokumentiere deinen Code ausreichend, damit du später genau weißt, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Arbeitsmappen gespeichert werden, bevor ich Excel schließe?
Du kannst den Parameter True in der Close-Methode nutzen, um alle Änderungen automatisch zu speichern.

2. Was passiert, wenn ich das Makro nicht in einer xlsm-Datei speichere?
Das Makro wird nicht ausgeführt, da die xlsm-Datei notwendig ist, um VBA-Makros zu speichern und auszuführen.

3. Kann ich das Makro für bestimmte Arbeitsmappen anpassen?
Ja, du kannst Bedingungen einfügen, um nur bestimmte Arbeitsmappen zu schließen, indem du die Namen oder die Dateitypen überprüfst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige