In vielen Excel Anwendungen ist es hilfreich oder sogar notwendig, den Namen eines Tabellenblattes automatisch auszulesen. Besonders bei größeren Arbeitsmappen mit vielen Tabellenblättern wird der Blattname häufig benötigt, um Formeln dynamisch zu gestalten, Bezüge automatisch anzupassen oder Informationen übersichtlich darzustellen.
Typische Einsatzfälle sind zum Beispiel:
- dynamische Verweise auf andere Tabellenblätter
- automatisierte Auswertungen mit vielen Blättern
- Erstellung von Übersichten oder Dashboards
- Ausgabe des aktuellen Blattnamens in einer Zelle
- automatisierte Druck- oder Exportfunktionen
- VBA Anwendungen mit Bezug auf das aktive Blatt
Excel bietet grundsätzlich zwei Möglichkeiten, den Namen eines Tabellenblattes auszulesen:
- über eine Formellösung
- über eine VBA-Funktion
Beide Varianten haben unterschiedliche Vorteile und eignen sich für verschiedene Anwendungsfälle.
1. Tabellenblattnamen über eine Excel Formel auslesen
Eine Möglichkeit besteht darin, den Blattnamen über eine Kombination mehrerer Excel Funktionen zu ermitteln. Die zentrale Funktion dabei ist die Funktion ZELLE().
Die Funktion ZELLE
Die Funktion
ZELLE(Infotyp; Bezug)
liefert verschiedene Informationen über eine Zelle.
Wenn als Infotyp "Dateiname" verwendet wird, gibt Excel folgende Information zurück:
Laufwerk:\Ordner\[Dateiname.xlsx]Tabellenblattname
Beispiel:
C:\Dokumente\Excel\[Umsatzanalyse.xlsx]Januar
Diese Ausgabe enthält also:
- den vollständigen Dateipfad
- den Dateinamen
- den Tabellenblattnamen
Da nur der Blattname benötigt wird, muss dieser aus dem Text extrahiert werden.
Formelvariante 1
Eine Möglichkeit besteht darin, den Blattnamen mit der Funktion TEIL und FINDEN herauszufiltern.
=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;255)
Funktionsweise der Formel
Die Formel arbeitet in mehreren Schritten:
1. ZELLE("dateiname";A1)
Excel gibt den vollständigen Dateipfad inklusive Tabellenblattname zurück.
2. FINDEN("]";ZELLE(...))
Die Funktion FINDEN sucht die Position der schließenden Klammer ].
Diese Klammer befindet sich immer direkt vor dem Tabellenblattnamen.
3. +1
Durch das Addieren von 1 wird die Position direkt nach der Klammer bestimmt.
4. TEIL(...)
Die Funktion TEIL extrahiert den Text ab dieser Position.
Die Zahl 255 dient nur als maximale Zeichenlänge und stellt sicher, dass der komplette Blattname ausgegeben wird.
Formelvariante 2
Alternativ kann die Länge des Blattnamens genauer berechnet werden.
=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;LÄNGE(ZELLE("dateiname";A1))-FINDEN("]";ZELLE("dateiname";A1)))
Diese Variante funktioniert ähnlich wie die erste Formel, berechnet jedoch die exakte Länge des auszugebenden Textes.
Der Vorteil dieser Lösung liegt darin, dass nur die tatsächlich benötigte Textlänge extrahiert wird.
Wichtiger Hinweis zur Formel-Lösung
Die Funktion ZELLE("dateiname") liefert nur dann einen Wert zurück, wenn die Excel-Datei bereits gespeichert wurde.
Ist die Arbeitsmappe noch nicht gespeichert, gibt die Funktion eine leere Zeichenfolge zurück.
2. Tabellenblattnamen über VBA auslesen
Eine deutlich einfachere und elegantere Lösung besteht darin, den Blattnamen über eine benutzerdefinierte VBA-Funktion auszulesen.
Diese Methode ist besonders praktisch, wenn mit vielen dynamischen Auswertungen gearbeitet wird oder wenn der Blattname häufig benötigt wird.
Die folgende Funktion liest den Namen des aktuell aktiven Tabellenblattes aus und gibt ihn als Ergebnis zurück.
Public Function blattname() As String
Application.Volatile
blattname = ActiveSheet.Name
End Function
Erklärung des VBA Codes
Public Function
Durch Public Function wird eine benutzerdefinierte Excel Funktion erstellt. Diese kann anschließend wie eine normale Excel Funktion in einer Zelle verwendet werden.
blattname()
Der Name der Funktion lautet blattname. Dieser Name kann frei gewählt werden.
Application.Volatile
Diese Anweisung sorgt dafür, dass die Funktion bei jeder Neuberechnung von Excel automatisch aktualisiert wird.
Ohne diese Anweisung würde Excel den Blattnamen nur einmal berechnen und danach nicht mehr aktualisieren.
ActiveSheet.Name
Diese Eigenschaft liefert den Namen des aktuell aktiven Tabellenblattes.
Der zurückgegebene Name wird anschließend als Ergebnis der Funktion ausgegeben.
Verwendung der Funktion in Excel
Nachdem die Funktion im VBA Modul gespeichert wurde, kann sie direkt im Tabellenblatt verwendet werden.
In eine Zelle wird einfach folgende Formel eingetragen:
=blattname()
Die Zelle zeigt anschließend automatisch den Namen des aktuellen Tabellenblattes an.
Vorteile der VBA Lösung
Die VBA Methode bietet mehrere Vorteile:
- deutlich einfachere Anwendung
- keine komplexen Formeln erforderlich
- funktioniert unabhängig vom Dateipfad
- übersichtlichere Lösungen bei größeren Modellen
- leicht erweiterbar
Gerade bei größeren Excel Anwendungen ist diese Lösung meist die komfortablere Variante.
Typische Einsatzmöglichkeiten
Das automatische Auslesen des Tabellenblattnamens wird in vielen Excel Anwendungen genutzt, zum Beispiel für:
- dynamische Berichtstitel
- automatische Dokumentation von Auswertungen
- Erstellen von Übersichten über mehrere Tabellenblätter
- Generieren von Drucküberschriften
- automatische Dateiexporte
- VBA gesteuerte Automatisierungen
Besonders bei komplexeren Excel Tools mit vielen Tabellenblättern spart diese Technik viel Zeit und reduziert Fehlerquellen.
Fazit
Der Tabellenblattname lässt sich in Excel sowohl über eine Formellösung als auch über VBA auslesen.
Die Formelvariante eignet sich besonders für einfache Anwendungen ohne Programmierung. Sie nutzt die Funktion ZELLE("dateiname"), aus deren Ergebnis der Blattname extrahiert wird.
Die VBA Lösung ist hingegen deutlich eleganter und einfacher zu verwenden. Mit einer kleinen benutzerdefinierten Funktion kann der Blattname direkt in einer Zelle ausgegeben werden.
Welche Methode verwendet wird, hängt letztlich vom Einsatzzweck und vom Umfang der Excel Anwendung ab. In der Praxis wird jedoch häufig die VBA Variante bevorzugt, da sie übersichtlicher und flexibler ist.

