Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblätter automatisch nach Zellen benennen

Tabellenblätter automatisch nach Zellen benennen
16.04.2015 11:40:20
Fabian
Hallo
ich brauche für meine Excel-Tabelle ein Makro, das automatisch den Namen mehrerer Tabellenblätter ändert, sobald ich den Wert einer Zelle ändere.
In der Tabelle 1 trägt man ein Jahr ein, das in den einzelnen Blättern (5-16) für die Monate (August - Juli) von einem Datum in einen Text konvertiert wird. (Dadurch sind es immer zwei verschiedene Jahre)
Dabei muss das Jahr jeweils aus der Zelle E3 der entsprechenden Tabelle kommen und mit dem vordeffinierten Monatsnamen zusammen als z. B. "August 2015" angezeigt werden. Außerdem sollen sich die Namen direkt ändern, wenn die Zelle B1 und/oder B6 in der ersten Tabelle sich ändert, ohne das man jedes Tabellenblatt aufrufen oder einen Schalter betätigen muss. Falls die Zelle B1 und/oder B6 der Tabelle 1 leer ist, soll der Name des Tabellenblattes "[Monat] xxxx" lauten.
Ich weiß nicht ob es für das Makro wichtig ist, aber das Jahr in E3 wird nicht direkt von B1 und B6 abgegriffen.
Wenn jemand so ein Makro schreiben könnte wäre mir sehr geholfen, mein VBA ist dafür noch zu schlecht.
Vielen Dank
Fabian

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter automatisch nach Zellen benennen
16.04.2015 13:35:54
fcs
Hallo Fabian,
wichtig ist, dass nach einer Änderung in B1 und/oder B6 in E3 der Monatsblätter ggf. das Jahr neuberechnet wird.
Gruß
Franz
'Makro unter Tabelle1 (Blatt mit B1 und B6)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intBlatt As Integer, Jahr As Integer, Monat As Integer
Dim wks As Worksheet
Select Case Target.Address(False, False, xlA1)
Case "B1", "B6"
If Range("B1")  "" And Range("B6")  "" Then
For intBlatt = 5 To 16
Set wks = Sheets(intBlatt)
Jahr = Val(wks.Range("E3").Text)
Monat = intBlatt + 3
wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " " & Jahr
Next
ElseIf Range("B1") = "" Or Range("B6") = "" Then
For intBlatt = 5 To 16
Set wks = Sheets(intBlatt)
Jahr = Year(Date)
Monat = intBlatt + 3
wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " xxxx"
Next
End If
End Select
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter automatisch nach Zellen benennen


Schritt-für-Schritt-Anleitung

Um Deine Excel-Tabellenblätter automatisch nach Zellen zu benennen, kannst Du ein einfaches Makro verwenden. Dieses Beispiel zeigt, wie Du die Namen der Tabellenblätter basierend auf Werten in bestimmten Zellen anpassen kannst:

  1. Öffne Deine Excel-Datei und gehe zu der Tabelle, in der Du die Zellen B1 und B6 hast.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke im Projektfenster auf die Tabelle, in der Du das Makro anwenden möchtest (z. B. „Tabelle1“).

  4. Füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim intBlatt As Integer, Jahr As Integer, Monat As Integer
       Dim wks As Worksheet
       Select Case Target.Address(False, False, xlA1)
           Case "B1", "B6"
               If Range("B1") <> "" And Range("B6") <> "" Then
                   For intBlatt = 5 To 16
                       Set wks = Sheets(intBlatt)
                       Jahr = Val(wks.Range("E3").Text)
                       Monat = intBlatt + 3
                       wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " " & Jahr
                   Next
               ElseIf Range("B1") = "" Or Range("B6") = "" Then
                   For intBlatt = 5 To 16
                       Set wks = Sheets(intBlatt)
                       Jahr = Year(Date)
                       Monat = intBlatt + 3
                       wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " xxxx"
                   Next
               End If
       End Select
    End Sub
  5. Speichere Deine Änderungen und schließe den VBA-Editor.

Jetzt werden die Excel-Reiter automatisch benannt, wenn Du die Werte in den Zellen B1 oder B6 änderst.


Häufige Fehler und Lösungen

  • Fehler: Die Excel-Tabellenblätter werden nicht umbenannt.

    • Lösung: Stelle sicher, dass der VBA-Code korrekt eingegeben wurde und dass Du die richtigen Zelladressen verwendest.
  • Fehler: "Excel Tabellenblatt umbenennen nicht möglich" Fehlermeldung.

    • Lösung: Überprüfe, ob die Tabellennamen nicht bereits existieren oder ob sie ungültige Zeichen enthalten.

Alternative Methoden

Wenn Du kein Makro verwenden möchtest, kannst Du auch manuell jedes Tabellenblatt umbenennen, indem Du mit der rechten Maustaste auf den Tab klickst und „Umbenennen“ wählst. Dies ist jedoch nicht so effizient, wenn Du mehrere Tabellenblätter umbenennen möchtest.

Eine andere Möglichkeit wäre die Verwendung von Excel-Formeln in einer Zelle, um den gewünschten Namen zu erzeugen und diesen dann manuell in die Tabellennamen zu übertragen.


Praktische Beispiele

Angenommen, Du hast fünf Tabellenblätter für die Monate von August bis Dezember. Wenn Du in Zelle B1 das Jahr 2023 und in B6 den Wert "Aktiv" eingibst, würden die Tabellenblätter automatisch in „August 2023“, „September 2023“ usw. umbenannt.

Hier ist ein Beispiel für das Format:

  • August 2023
  • September 2023
  • Oktober 2023
  • November 2023
  • Dezember 2023

Tipps für Profis

  • Du kannst das Makro anpassen, um auch andere Zellen oder Bedingungen für das Umbenennen zu berücksichtigen.
  • Überlege, ob Du eine Fehlerbehandlung im Code hinzufügen möchtest, um mögliche Probleme beim Umbenennen der Excel-Spalten zu vermeiden.
  • Wenn Du mehrere Tabellenblätter umbenennen möchtest, kannst Du auch eine Schleife verwenden, um dies effizienter zu gestalten, ohne jedes Blatt manuell anzupassen.

FAQ: Häufige Fragen

1. Kann ich Tabellenblätter automatisch benennen ohne Makro? Ja, das ist möglich, jedoch weniger flexibel. Du musst die Namen manuell ändern.

2. Was passiert, wenn die Zellen B1 oder B6 leer sind? In diesem Fall wird der Name der Tabellenblätter in einem Standardformat wie „Monat xxxx“ angezeigt.

3. Ist das Makro in allen Excel-Versionen verfügbar? Ja, das Makro funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige