Office 03.08.2018, 08:22 Uhr

Blattname in einer Zelle ausgeben

Mit welcher Formel kann ich den Namen des aktuellen Arbeitsblatts in eine Zelle meiner Excel-Tabelle holen?
(Quelle: pctipp.ch)
Das ist nicht ganz so einfach, denn Excel kennt nach wie vor keine Funktion, mit der man ihm den Blattnamen direkt separat entlocken könnte. Es geht jedoch trotzdem – sogar ohne VBA, sprich: ohne Makro!
Hier hat der Excel-Fuchs Martin Weiss eine Formel gestrickt, mit der es ohne Makro geht. Wichtig ist einfach, dass Sie die Datei mindestens einmal gespeichert haben. Denn solange die Datei nicht gespeichert wurde, hat sie keinen Pfad und Dateinamen. Die Formel würde scheitern, bevor sie überhaupt dazu käme, sich mit Blattnamen zu befassen.
Voilà – hier ist die Formel. Sie müssen diese auch nicht anpassen. Fügen Sie diese einfach in jene Zelle ein, in der Sie den Blattnamen gerne sehen würden:
=RECHTS(ZELLE("dateiname";A1);LÄNGE(ZELLE("dateiname";A1))-FINDEN("]";ZELLE("dateiname";A1)))
Die Idee dahinter: Die Funktion ZELLE mit dem Parameter «Dateiname» kennt auch den Namen des aktuellen Tabellenblatts. Dies können Sie nach einem Speichern Ihrer Datei ausprobieren, indem Sie in eine Zelle schlicht: =ZELLE("dateiname") schreiben. Excel spuckt den ganzen Pfad aus, inklusive Dateinamen und Tabellenblattnamen, z.B. so: «C:\Users\Test\[MonatsMappe.xlsx]Januar»
Wie Sie erkennen, befindet sich der Blattname am Ende der Angabe, direkt rechts einer schliessenden eckigen Klammer (]). Die wird in der obigen Formel mittels FINDEN gesucht, dann werden noch die überzähligen Teile per Formel weggeschnitten – und übrig bleibt der Blattname.
Über den Bezug auf A1 brauchen Sie sich nicht zu wundern; Sie müssen diesen auch nicht anpassen. Ihn braucht es, damit sich die Formel auf jedem Blatt wieder neu auf ein Objekt (hier: eine Zelle) beziehen kann, die sich auf diesem Blatt befindet.
Der Blattname in der Zelle mitsamt der zugehörigen Formel sieht dann z.B. so aus
Quelle: pctipp.ch
Folgendes klappt hingegen leider nicht mehr: Bisher hatten wir hierfür den Tipp, eine eigene Funktion per VBA einzuführen:
Function Blattname()
Blattname = Application.ActiveSheet.Name
End Function
Das hat eine benutzerdefinierte Funktion eingebaut, die man dann in jeder beliebigen Zelle hätte mittels «=Blattname()» aufrufen können. Das klappt so jedoch nicht mehr richtig. Ausserdem müsste die Funktion bei jedem Anwender vorhanden sein, damit er sie nutzen kann. Die Lösung mittels Formel ist besser, da hierfür auch kein Speichern als «Arbeitsmappe mit Makros» oder Ähnliches nötig ist. Je weniger VBA, desto besser.



Das könnte Sie auch interessieren