VBA-Methoden: Mehrere Arbeitsblätter umbenennen

Vielleicht erinnerst du dich. Im Beitrag „VBA-Methoden: Arbeitsblätter zählen, Anzahl festlegen“ zeigte ich am Ende des Beitrags eine einfache Möglichkeit, die Arbeitsblätter einer neuen Arbeitsmappe umzubenennen.
Gleichzeitig versprach ich, dir in einem späteren Beitrag bessere Wege zu zeigen. Jetzt ist es soweit.

Beispiel 1

Angenommen, du hast eine neue Arbeitsmappe mit 12 Arbeitsblättern erstellt. Standardmäßig haben die Arbeitsblätter die Namen „Tabelle1“, „Tabelle2“ usw.

Du möchtest, dass die Blätter jeweils mit den Monatsnamen Januar bis Dezember benannt werden.

Zuerst nochmal eine einfache, aber aufwändige Methode.
Schreibe die Monatsnamen, in Lang- oder Kurzform, z.B. in den Bereich B5:B16. Du kannst sie später wieder löschen.

VBA_Blatt1

Das Makro zum Umbenennen der Arbeitsblätter schreibst du so:

Sub NameNeu1()
Worksheets(1).Name=Range(„B5“)
Worksheets(2).Name=Range(„B6“)
Worksheets(3).Name=Range(„B7“)
Worksheets(4).Name=Range(„B8“)
Worksheets(5).Name=Range(„B9“)
Worksheets(6).Name=Range(„B10“)
Worksheets(7).Name=Range(„B11“)
Worksheets(8).Name=Range(„B12“)
Worksheets(9).Name=Range(„B13“)
Worksheets(10).Name=Range(„B14“)
Worksheets(11).Name=Range(„B15“)
Worksheets(12).Name=Range(„B16“)
End Sub

Willst du den Bereich B5:B16 gleich wieder löschen, füge vor End Sub diese Anweisung ein:

Range(„B5:B16“).Clear

Beispiel 2

Das ist in der Tat etwas umständlich. Im nächsten Beispiel bist du klüger und verwendest eine For-Next-Schleife.

Sub NameNeu2()
Dim i As Integer
For i=1 To Worksheets.Count
Worksheets(i).Name=Range(„B“&i+4)
Next i
End Sub

Die Variable i ist eine Zählvariabel. Die Anweisung „Worksheets.Count“ zählt die vorhandenen Arbeitsblätter. Die Schleife durchläuft alle vorhandenen 12 Arbeitsblätter und nimmt nacheinander die Umbenennung in die Monatsnamen aus dem Bereich B5:B16 vor.

Range(„B“&i+4) wählt im ersten Schritt die Zelle in Spalte B, auf die i+4 (1+4=5) zutrifft, also B5.
Das erste Arbeitsblatt, Worksheets(1), erhält dadurch den Namen „Jan“, das zweite „Feb“ usw.

Entscheidest du dich, die Umbenennung rückgängig zu machen, brauchst du einen zweiten Hilfsbereich, der „Tabelle1“, „Tabelle2“ usw. auflistet. Lege ihn z.B. in Spalte C an.

VBA_Blatt2

Dieses Makro kannst du verwenden.

Sub NameNeu3()
Dim i As Integer
For i=1 To Worksheets.Count
Worksheets(i).Name=Range(„C“&i+4)
Next i
End Sub

Dann haben die Blätter wieder die ursprünglichen Namen.

Beispiel 3

Die Umbenennung kannst du ebenso mit einem Makro vornehmen, in dem du den Bereich B5:B16 als Variable deklarierst und mit der Anweisung „Set“ referenzierst. Das geht so:

Sub NameNeu4()
Dim i As Integer
Dim rngMonat As Range
Set rngMonat=Range(„B5:B16“)
For i=1 To Worksheets.Count
Worksheets(i).Name=rngMonat(i)
Next i
End Sub

Beispiel 4

Als letzte Möglichkeit zeige ich dir eine Variante unter Verwendung eines Arrays.
Wie diese deklariert werden, konntest du im Beitrag vor einer Woche kennenlernen.

Sub NameNeu5()
Dim i As Integer
Dim arrMonat(1 To 12) As String
For i=1 To 12
arrMonat(i)=Cells(i+4,2).Value
Worksheets(i).Name=arrMonat(i)
Next i
End Sub


Wenn der Beitrag hilfreich für dich war, lass es mich wissen, schreib einen Kommentar.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s