Excel Tabellenblätter mit VBA umbenennen: 4 effektive Wege
Hier ist ein ausführliches Tutorial, wie du Tabellenblätter in Excel mit VBA umbenennen kannst.
Das Umbenennen von Tabellenblättern gehört zu den Standardaufgaben bei der Automatisierung mit Excel VBA. Je nach Situation gibt es verschiedene Ansätze, um dies sicher und effizient zu tun.
Vorbereitung: Den VBA-Editor öffnen
- Drücke
ALT + F11, um den VBA-Editor zu öffnen. - Gehe auf
Einfügen>Modul. - Hier kannst du die folgenden Codes hineinkopieren.
Methode 1: Das aktive Tabellenblatt umbenennen (ActiveSheet)
Dies ist die einfachste Methode. Sie benennt das Blatt um, das gerade im Vordergrund ausgewählt ist.
Code:
Sub RenameActiveSheet()
ActiveSheet.Name = "MeinNeuerName"
End Sub
- Vorteil: Schnell und einfach.
- Nachteil: Fehleranfällig, wenn versehentlich das falsche Blatt aktiv ist.
Methode 2: Ein Blatt über den aktuellen Namen ansprechen
Wenn du genau weißt, wie das Blatt aktuell heißt (z. B. "Tabelle1"), kannst du es direkt über diesen Namen ansprechen.
Code:
Sub RenameSheetByName()
Sheets("Tabelle1").Name = "Vertriebsbericht"
End Sub
- Vorteil: Sehr präzise.
- Nachteil: Wenn jemand das Blatt manuell in Excel umbenennt, findet der VBA-Code das Blatt nicht mehr und wirft einen Fehler aus.
Methode 3: Ein Blatt über den Index (Position) umbenennen
Du kannst Blätter basierend auf ihrer Position in der Arbeitsmappe ansprechen (von links nach rechts gezählt).
Code:
Sub RenameSheetByIndex()
' Benennt das erste Tabellenblatt ganz links um
Sheets(1).Name = "Startseite"
End Sub
- Vorteil: Funktioniert unabhängig vom Namen des Blattes.
- Nachteil: Wenn die Reihenfolge der Tabs verschoben wird, wird das falsche Blatt umbenannt.
Methode 4: Die Profi-Methode – Verwendung des „CodeNames“
Dies ist der sicherste Weg. Jedes Blatt hat einen (internen) Codenamen, den der Benutzer in Excel normalerweise nicht sieht oder ändert. Schau im VBA-Editor links im Projekt-Explorer: Dort steht z. B. Tabelle1 (Tabelle1). Das Wort außerhalb der Klammer ist der Codename.
Code:
Sub RenameSheetByCodeName()
' Tabelle1 ist der interne Name im VBA-Editor
Tabelle1.Name = "SichererName"
End Sub
- Vorteil: Der Code funktioniert auch dann noch, wenn der Benutzer den Namen des Reiters oder die Position der Blätter ändert. Dies ist die beste Methode für stabile Makros.
Bonus: Tabellenblatt basierend auf einem Zellwert umbenennen
Oft möchte man, dass der Name des Blattes aus einer Zelle (z. B. A1) übernommen wird.
Code:
Sub RenameSheetFromCell()
Dim neuerName As String
neuerName = Range("A1").Value
If neuerName <> "" Then
ActiveSheet.Name = neuerName
Else
MsgBox "Zelle A1 ist leer!"
End If
End Sub
Wichtige Regeln beim Umbenennen
Bevor du loslegst, beachte diese Excel-Einschränkungen für Blattnamen:
- Länge: Maximal 31 Zeichen.
- Sonderzeichen: Die Zeichen
:,\,/,?,*,[und]sind verboten. - Eindeutigkeit: Ein Name darf nicht doppelt in einer Arbeitsmappe vorkommen.
- Leer: Der Name darf nicht leer sein.
Pro-Tipp: Nutze On Error Resume Next oder eine Prüfung, um Fehler zu vermeiden, falls ein Name bereits existiert.