Tipps & Tricks 17.02.2004, 12:45 Uhr

Tabellenblätter nach Zellinhalt benennen

Gibt in Excel es eine Funktion oder eventuell einen VBA-Makrobefehl (Makro aufzeichnen gelang mir nicht!), die/der es ermöglicht, einen Bezug von einer Zelle auf das Arbeisblattregister herzustellen? Konkret: ich ordne in einer EXCEL-Arbeitsmappe mit ca. 140 Arbeitsblätter die einzelnen Blätter einer bestimmten Person zu (eine Zelle, z.B. B4 = enthält den Namen der Person). Nun möchte ich gerne, dass das Arbeitsblattregister den entsprechenden Eintrag (= Namen in B4) übernimmt, so dass ich in der Mappe die Übersicht über die Arbeitsblätter habe und gezielt blättern kann. Ich kann zwar alle Arbeitsblätter nacheinander umbenennen, was aber relativ aufwändig und wenig geistreich ist!
Die Ausgangslage sieht folgendermassen aus:
Sie haben mehrere Tabellen, denen Sie den Namen zuweisen möchten, der jeweils in der Zelle B4 steht. Dafür benötigen Sie folgendes Makro, dass die gesamte Arbeitsmappe durchläuft:
Einen Fehler, zum Beispiel wenn die Zelle B4 leer ist oder bereits ein Blatt mit dem selben Namen besteht, wird das Makro einfach übergehen, und den Namen dieses Blattes nicht ändern. Sie können das Makro also auch ausführen, wenn Sie nur den Namen eines einzelnen Blattes geändert haben.
------------------------------------------
MAKRO ZUM KOPIEREN:
Sub Namen_anpassen_alle()
Sheets(1).Select
B = ActiveSheet.Index
For Each w In Worksheets
Sheets(B).Activate
n = [b4].Value
On Error Resume Next
w.Name = n
B = B + 1
Next w
Sheets(1).Select
End Sub
-------------------------------------------


Kommentare
Avatar
NiCa
20.08.2007
Hallo Leider bin ich ein Anfänger was Makro angeht. Das Makro ist fast genau das was ich brauche. Jedoch steht bei mir der Name nicht in jedem Tabellenblat in der selben Zelle, sondern die Namen stehen im ersten Tabellenblatt in den Zellen F2 bis M2. Kann mir jemand helfen ? Danke und Gruss tbaumgar Hallo tbaumgart Also Name von Tabelle1 in F2, Tabelle2 in G2 usw bis Tabelle8 in M2? - Habe ich dich hier richtig verstanden? Makro im Webcode 26556

Avatar
NiCa
20.08.2007
Versuchs damit: Sub Namen_anpassen_alle() Sheets(1).Select B = ActiveSheet.Index [F2].Select For Each w In Worksheets Na = ActiveCell.Value Sheets(B).Activate B = B + 1 On Error Resume Next w.Name = Na Sheets(1).Select ActiveCell.Offset(0, 1).Select Next w Sheets(1).Select End Sub