FAQ Excel – Speicherung von Dateien
Problem
Wenn Sie die Umschalt-Taste drücken und dann das Menü Datei anwählen, stellt Excel bekanntlich den Befehl Alle schließen zur Verfügung. Häufig möchten Sie die geöffneten Arbeitsmappen aber nicht schließen, sondern in einem Arbeitsgang speichern. Leider bietet Excel aber von Haus aus nur das gleichzeitige Schließen aller geöffneten Dateien an. Wenn Sie alle Arbeitsmappen „in einem Rutsch“ speichern wollen, ohne sie zu schließen, müssen Sie mit einem VBA-Makro nachhelfen.
Lösung
Wechseln Sie also mit Alt+F11 in den Visual Basic-Editor und richten Sie mit dem Befehl Einfügen-Modul ein neues Codefenster ein. Geben Sie folgende Prozedur ein:
Public Sub AllesSpeichern() Dim objMappe As Workbook For Each objMappe In Application.Workbooks If objMappe.Path <> "" Then objMappe.Save Else objMappe.Activate Application.Dialogs(_ xlDialogSaveAs).Show (objMappe.Name) End If Next objMappe MsgBox "Speichervorgang beendet!" End Sub
Die For-Schleife durchläuft alle geöffneten Arbeitsmappen, wobei sie prüft, ob die aktuelle Mappe bereits eine Pfadangabe besitzt. Wenn das der Fall ist, wird die Datei gespeichert. Sollte keine Pfadangabe vorhanden sein, bedeutet das, dass es sich um eine neue, bislang noch nicht gespeicherte Arbeitsmappe handelt. Unter dieser Voraussetzung zeigt die Prozedur das eingebaute Dialogfeld Speichern unter an. So haben Sie Gelegenheit, die Datei unter einem Namen Ihrer Wahl zu speichern. Falls Sie im Dialogfeld auf Abbrechen klicken, wird die Datei natürlich nicht gespeichert! Sobald alle Dateien abgearbeitet sind, weist Sie ein Meldungsfenster auf das Ende des Speichervorgangs hin.
Aus Excel rufen Sie die Prozedur über das Dialogfeld Makro auf, das Sie am schnellsten mit der Tastenkombination Alt+F8 öffnen. Das Makro „AllesSpeichern“ steht so lange zur Verfügung, wie die Datei mit dem Makrocode geöffnet ist.