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.
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.
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
Entdecke mehr von Clevercalcul
Subscribe to get the latest posts sent to your email.
Super Beispiel 1 hat mir sehr geholfen, weil es auch für 31 Tage geht, es bleibt nur die Frage welchen Befehl ich eingeben muss um Tag, Monat Jahr (ddd, dd.mm.yy) bei Beispiel 1 schöne Grüße Pu