Excel-Tutorial: Arbeitsmappe nach Zellinhalt benennen und speichern (VBA)
Hier ist ein ausführliches Tutorial, wie du eine Excel-Arbeitsmappe basierend auf dem Inhalt einer bestimmten Zelle automatisch benennen und speichern kannst.
In diesem Tutorial lernst du, wie du mithilfe eines einfachen VBA-Makros den Dateinamen deiner Excel-Datei dynamisch aus einer Zelle (z. B. "A1") generierst und die Datei speicherst. Das ist besonders hilfreich für Rechnungen, Berichte oder Protokolle.
Voraussetzungen
- Entwicklertools aktivieren: Falls du die Registerkarte "Entwicklertools" in Excel nicht siehst, gehe zu Datei > Optionen > Menüband anpassen und setze einen Haken bei „Entwicklertools“.
- Dateiformat: Damit Makros funktionieren, muss die Datei später als Excel-Arbeitsmappe mit Makros (.xlsm) gespeichert werden.
Schritt 1: Den VBA-Editor öffnen
- Öffne deine Excel-Datei.
- Drücke
ALT + F11, um den VBA-Editor zu öffnen. - Gehe im Menü auf
Einfügen>Modul. Ein leeres Fenster erscheint.
Schritt 2: Den VBA-Code einfügen
Kopiere den folgenden Code und füge ihn in das neue Modul-Fenster ein:
Sub SpeichernUnterZellinhalt()
Dim Pfad As String
Dim Dateiname As String
Dim VollerPfad As String
' 1. Pfad festlegen (In diesem Beispiel der gleiche Ordner wie die aktuelle Datei)
' Falls die Datei noch nie gespeichert wurde, wird der Standard-Dokumentenpfad genutzt
Pfad = ThisWorkbook.Path & "\"
' 2. Zellinhalt für den Dateinamen festlegen (Hier Zelle A1 in Tabelle1)
' Du kannst "Tabelle1" und "A1" nach Bedarf anpassen
Dateiname = Sheets("Tabelle1").Range("A1").Value
' 3. Überprüfung, ob die Zelle leer ist
If Dateiname = "" Then
MsgBox "Fehler: Die Zelle A1 ist leer. Bitte gib einen Namen ein!", vbCritical
Exit Sub
End If
' 4. Den vollen Pfad inklusive Dateiendung (.xlsm) zusammensetzen
VollerPfad = Pfad & Dateiname & ".xlsm"
' 5. Speichervorgang ausführen
On Error Resume Next
ThisWorkbook.SaveAs Filename:=VollerPfad, FileFormat:=52 ' 52 = xlOpenXMLWorkbookMacroEnabled
' Fehlermeldung, falls Speichern fehlschlägt (z.B. wegen ungültiger Zeichen)
If Err.Number <> 0 Then
MsgBox "Fehler beim Speichern! Überprüfe, ob der Zellinhalt ungültige Zeichen enthält (\ / : * ? "" < > |)", vbCritical
Else
MsgBox "Datei erfolgreich gespeichert unter: " & VollerPfad, vbInformation
End If
On Error GoTo 0
End Sub
Schritt 3: Den Code anpassen
- Zelle ändern: Wenn der Name in einer anderen Zelle steht (z. B. B5), ändere
Range("A1")inRange("B5"). - Tabellenblatt ändern: Wenn dein Blatt nicht "Tabelle1" heißt, passe den Namen in
Sheets("Tabelle1")an. - Pfad ändern: Wenn du die Datei in einem festen Ordner speichern willst (z. B. C:\Rechnungen), ändere die Zeile
Pfadso ab:Pfad = "C:\Rechnungen\"
Schritt 4: Das Makro ausführen
Es gibt zwei Möglichkeiten, das Makro zu starten:
Methode A: Über das Menü
- Gehe zurück zu Excel.
- Drücke
ALT + F8. - Wähle
SpeichernUnterZellinhaltund klicke auf Ausführen.
Methode B: Mit einer Schaltfläche (Empfohlen)
- Gehe auf die Registerkarte Einfügen > Illustrationen > Formen und zeichne ein Rechteck.
- Klicke mit der rechten Maustaste auf das Rechteck und wähle Makro zuweisen.
- Wähle
SpeichernUnterZellinhaltaus und bestätige mit OK. - Jetzt wird die Datei jedes Mal gespeichert, wenn du auf die Schaltfläche klickst.
Wichtige Hinweise
- Ungültige Zeichen: Achte darauf, dass in der Zelle keine Zeichen stehen, die in Dateinamen verboten sind (z. B.
/ \ : * ? " < > |). - Sicherheit: Wenn du die Datei an andere weitergibst, müssen diese "Makros aktivieren" wählen, damit die Schaltfläche funktioniert.
- Dateiformat: Der Code nutzt
FileFormat:=52. Das sorgt dafür, dass die Datei als.xlsmgespeichert wird, damit das Makro selbst erhalten bleibt.
Zusammenfassung
Mit diesem Skript automatisierst du die Benennung deiner Dateien. Sobald du den Wert in Zelle A1 änderst und auf Speichern klickst, erstellt Excel eine Kopie (oder überschreibt die bestehende Datei) mit dem neuen Namen im gleichen Verzeichnis.