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

Forumthread: Zelleninhalt gleich "Tabellenblattname"

Zelleninhalt gleich "Tabellenblattname"
05.02.2007 18:19:35
Wrobel
Hi Leute,
bin auf der Suche nach einer Möglichkeit in der sich der Tabellenblattname automatisch einem Zelleninhalt anpasst.
Wenn ich z.B. im Tabellenblatt 1 in A1 "Jan." reinschreibe möchte ich, dass das Tabellenblatt 2 "Jan." heißt.
Wäre nett wenn ich hier ein Tipp bekommen könnte.
Vielen Dank.
Fg
André
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 18:38:13
Wrobel
Klappt super, ich habe nun versucht den Code abzuändern klappt aber nicht.
Möchte in a2 und a3 ebenfalls was eintragen, sodass das Tab.-blatt 2 und 3 auch umbenannt werden.
Wie hast du das gemacht?
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 18:39:12
Wrobel
Sorry, hatte eben kein "Haken" gesetzt.
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 18:52:35
Erich
Hallo stormy(?),
das würde ich dann so machen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer
For ii = 1 To 3
If Not Intersect(Cells(ii, 1), Target) Is Nothing Then
Sheets(ii).Name = Cells(ii, 1)
End If
Next ii
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 20:52:31
Frank
Hallo zusammen,
Ich finde diese Möglichkeit der automatischen Beschriftung der Reiter super.
Bestimmt gibt es auch die Möglichkeit die Farbe der Reiter auf diese art zu verändern, da Excel 2000 das noch nicht unterstützt.
Für einen Vorschlag wäre ich dankbar.
PS. ich habe keine VBA Kentnisse, kann also nur abtippen oder kopieren.
Gruß Franky
Anzeige
@Frank: Blattnamen und Reiterfarben
06.02.2007 00:15:59
Erich
Hallo Frank,
speziell für dich:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer, intF As Integer
For ii = 4 To 8                                           ' Zeilen 4 bis 8
If Not Intersect(Cells(ii, 5), Target) Is Nothing Then ' Spalte 5 = E
If BlattNam_Pruefung(Cells(ii, 5)) Then
With Sheets(ii + 1)                             ' Blätter 5 bis 9
.Name = Cells(ii, 5)
Select Case Cells(ii, 6)
Case 0: intF = xlColorIndexNone     ' 0 für keine Färbung
Case 1 To 56: intF = Cells(ii, 6)   ' Farbnummer (1 - 56) aus Spalte 6 = F
Case Else
MsgBox "E" & ii & " enthält keinen gültigen Farbindex: " & Cells(ii, 6)
intF = 9999
End Select
If intF < 9999 Then .Tab.ColorIndex = intF
End With
Else
MsgBox "E" & ii & " enthält keinen gültigen Blattnamen: " & vbLf & Cells(ii, 5)
End If
End If
Next ii
End Sub
Function BlattNam_Pruefung(BlaNam As String) As Boolean
' www.excelformeln.de/formeln.html?welcher=96
' www.xlam.ch/pos/rules.htm#Richtlinien%20f%FCr%20Arbeitsblatt-Namen
If BlaNam = "" Or Len(BlaNam) > 31 Then Exit Function
If Application.Evaluate("=SUM((MID(""" & BlaNam & """,COLUMN(1:1),1)" & _
"={"":"";""/"";""\"";""?"";""*"";""]"";""[""})*1)") > 0 Then Exit Function
BlattNam_Pruefung = True
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 21:09:09
Wrobel
Danke nochmal.
Ich habe die beide Formeln ausprobiert, funktionieren auch.
Mein Beispiel war zwar in a1, a2, etc., sollte nur ein Beispiel sein um es verständlicher zu erklären und damit ich versuchen kann wie die Formel bzw. Code funktioniert. Doch leider komme ich mit meinem sehr geringen Wissen diesbzgl. nicht weiter.
In meiner eigentlichen Tabelle befinden sich die s.g. Bezugszellen in der dritten Tabelle (Zellen E4-E8), die Tabellen 5-9 sind die, die entsprechend daraus benannt werden sollen.
Hoffe ich konnte es verständlich rüberbringen.
Gruß
André
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 21:22:36
Erich
Hallo André,
dann so (gehört in den Code der dritten Tabelle):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer
For ii = 4 To 8                                           ' Zeilen 4 bis 8
If Not Intersect(Cells(ii, 5), Target) Is Nothing Then ' Spalte 5 = E
Sheets(ii + 1).Name = Cells(ii, 5)                  ' Blätter 5 bis 9
End If
Next ii
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 21:35:02
Wrobel
Hallo Erich,
ich habe deinen Code kopiert und in die dritte Tabelle eingefügt.
Änderungen habe ich in den Zellen E4 bis E8 vorgenommen, doch leider hat sich nichts getan.
Hast du noch einen anderen Vorschlag?
Freue mich über jeden Tipp!
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 21:45:30
stormy_weathers
Hallo,
Du sollst die Angaben nicht in die 3. Tabelle kopieren, sondern in das Modul vom 3. Tabellenblatt!
Grüße
stormy
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 21:46:35
Erich
Hallo André,
muss ich das "Code kopiert und in die dritte Tabelle eingefügt" wörtlich nehmen?
Der Code gehört nicht in die Tabelle selbst, sondern in das VBA-Modul der Tabelle.
Mit Alt+F11 kommst du in den VBA-Editor, dort Doppelklick auf die 3. Tabelle (unter "DieseArbeitsmappe").
Hier noch ein Code, der vor dem Versuch, einen Blattnamen zu ändern,
überprüft, ob der Text in der Zelle überhaupt als Blattname gültig ist:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer
For ii = 4 To 8                                           ' Zeilen 4 bis 8
If Not Intersect(Cells(ii, 5), Target) Is Nothing Then ' Spalte 5 = E
If BlattNam_Pruefung(Cells(ii, 5)) Then
Sheets(ii + 1).Name = Cells(ii, 5)               ' Blätter 5 bis 9
Else
MsgBox "E" & ii & " enthält keinen gültigen Blattnamen: " & vbLf & Cells(ii, 5)
End If
End If
Next ii
End Sub
Function BlattNam_Pruefung(BlaNam As String) As Boolean
' www.excelformeln.de/formeln.html?welcher=96
' www.xlam.ch/pos/rules.htm#Richtlinien%20f%FCr%20Arbeitsblatt-Namen
If BlaNam = "" Or Len(BlaNam) > 31 Then Exit Function
If Application.Evaluate("=SUM((MID(""" & BlaNam & """,COLUMN(1:1),1)" & _
"={"":"";""/"";""\"";""?"";""*"";""]"";""[""})*1)") > 0 Then Exit Function
BlattNam_Pruefung = True
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 22:29:01
Wrobel
So ich habe nach wie vor den Code natürlich nicht direkt in die Tabelle eingefügt, sondern ins VBA (unter MS Excel Objekte) in Tab 3. Hoffe es ist richtig.
Leider passiert dennoch nichts.
Die Änderungen habe ich nach dem ich den Code eingefügt habe in den Zellen E4 - E8 vorgenommen, doch leider passiert nichts.
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 23:20:56
Wrobel
Habe den Code in eine neue Tabelle eingefügt, dort funzt es!
Sobald ich aber den Code in meine bestehende Tabelle setzte geht wiederum nicht.
Woran kann es liegen?
AW: Zelleninhalt gleich "Tabellenblattname"
05.02.2007 23:48:34
Erich
Hallo André,
sorry, das mit dem Einfügen in die Tabelle war ein Missverständnis - du hattest das so formuliert...
Meine Beschreibung war ungenau, um nicht zu sagen: falsch.
Im VBA-Projektexplorer sind die Blätter alphabetisch sortiert, unabhängig von der Position im Excel-Blattregister.
Im Projektexplorer hat jede Tabelle zwei Namen: Zunächst den internen (ohne Klammern),
dahinter den "normalen" Blattnamen in Klammern. Der zweite Name ist hier wichtig.
Der Code gehört in das Modul der Tabelle, wo er wirken soll.
Am einfachsten kommst du zu diesem Code, wenn du im Excel-Blattregister mit der rechten Maustaste auf den Reiter klickst
und dann "Code anzeigen" auswählst.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zelleninhalt gleich "Tabellenblattname"
06.02.2007 00:16:31
Wrobel
ICH DREH DURCH ES FUNKTIONIERT!!!
WAHNSINN VIELEN DANK FÜR DIE HILFE, HABE MICH ABER MANCHMAL VIELLEICHT AUCH ETWAS FALSCH AUSGEDRÜCKT!
VIELEN DANK UND SCHÖN GRUß
ANDRE
Danke für Rückmeldung - freut mich! (oT)
06.02.2007 00:22:47
Erich
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt gleich "Tabellenblattname" in Excel


Schritt-für-Schritt-Anleitung

Um den Tabellenblattnamen aus einer Zelle zu übernehmen, kannst Du die folgende Methode nutzen:

  1. Öffne die Excel-Datei und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Suche im Projekt-Explorer nach dem gewünschten Tabellenblatt, in dem Du die Zelle ändern möchtest.
  3. Doppelklicke auf das Tabellenblatt, um das Modul zu öffnen.
  4. Füge den folgenden VBA-Code in das Modul ein:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ii As Integer
    For ii = 4 To 8  ' Hier die Zeilen anpassen, in denen die Zellen stehen
        If Not Intersect(Cells(ii, 5), Target) Is Nothing Then ' Spalte 5 = E
            If BlattNam_Pruefung(Cells(ii, 5)) Then
                Sheets(ii + 1).Name = Cells(ii, 5)  ' Blätter 5 bis 9
            Else
                MsgBox "E" & ii & " enthält keinen gültigen Blattnamen: " & vbLf & Cells(ii, 5)
            End If
        End If
    Next ii
End Sub

Function BlattNam_Pruefung(BlaNam As String) As Boolean
    If BlaNam = "" Or Len(BlaNam) > 31 Then Exit Function
    If Application.Evaluate("=SUM((MID(""" & BlaNam & """,COLUMN(1:1),1)" & _
    "={"":"";""/"";""\"";""?"";""*"";""[""}"";""[""})*1)") > 0 Then Exit Function
    BlattNam_Pruefung = True
End Function
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Ändere die Werte in den Zellen E4 bis E8, um die Blattnamen entsprechend anzupassen.

Häufige Fehler und Lösungen

  • Fehler: Der Tabellenblattname ändert sich nicht.

    • Lösung: Stelle sicher, dass Du den Code im richtigen Modul des spezifischen Tabellenblattes eingefügt hast. Du solltest mit der rechten Maustaste auf den Blattnamen klicken und "Code anzeigen" auswählen.
  • Fehler: Eine Fehlermeldung erscheint bei der Namensänderung.

    • Lösung: Überprüfe, ob der neue Blattname den Kriterien entspricht (maximal 31 Zeichen, keine verbotenen Zeichen).

Alternative Methoden

Falls Du keine VBA-Programmierung verwenden möchtest, gibt es auch die Möglichkeit, den Tabellenblattnamen in eine Zelle einzufügen und diesen manuell zu ändern. Diese Methode erfordert jedoch mehr manuellen Aufwand.

  1. Klicke mit der rechten Maustaste auf das Tabellenblatt.
  2. Wähle "Umbenennen" und trage den gewünschten Namen ein, der auch in einer Zelle steht.

Praktische Beispiele

  1. Beispiel 1: Wenn in Zelle E4 "Januar" steht, wird das Tabellenblatt 5 automatisch in "Januar" umbenannt.
  2. Beispiel 2: Ändere den Inhalt von E5 zu "Februar", um das Tabellenblatt 6 entsprechend zu aktualisieren.

Tipps für Profis

  • Nutze die Excel-Formel „=ZELLEN(„dateiname“;A1)“, um den aktuellen Blattnamen in einer Zelle anzuzeigen. So kannst Du den Namen in einer Zelle dynamisch verwalten.
  • Stelle sicher, dass Du Backup-Kopien Deiner Excel-Dateien machst, bevor Du VBA-Skripte anwendest. Das schützt vor versehentlichen Datenverlusten.

FAQ: Häufige Fragen

1. Wie kann ich den Tabellenblattnamen aus einer Zelle übernehmen ohne VBA? Es ist nicht möglich, den Tabellenblattnamen direkt ohne VBA zu ändern. Du kannst jedoch manuell den Namen ändern.

2. Was sind die Einschränkungen beim Benennen von Tabellenblättern? Tabellenblattnamen dürfen maximal 31 Zeichen lang sein und keine der folgenden Zeichen enthalten: :, /, \, ?, *, [, ].

3. Kann ich den Namen des Tabellenblattes dynamisch ändern? Ja, das ist mit einem VBA-Skript möglich, wie im Abschnitt „Schritt-für-Schritt-Anleitung“ beschrieben.

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