Wenn Sie eine neue Arbeitsmappe starten, wird jedes Arbeitsblatt häufig nach einem anderen Tag im Monat benannt. Wenn Sie dies ziemlich oft tun, wissen Sie, dass es mühsam sein kann, jedes Arbeitsblatt einzeln in genau das umzubenennen, was Sie benötigen.

Das folgende Makro wurde entwickelt, um in diesen Situationen zu helfen. Es überprüft die Namen der Arbeitsblätter in Ihrer Arbeitsmappe und benennt sie in die Tage des Monats um, wenn sie mit den Buchstaben „Blatt“ beginnen. Wenn die Arbeitsmappe nicht genügend Blätter enthält, werden bei Bedarf für jeden Tag des Monats Blätter hinzugefügt.

Sub DoDays()

Dim J As Integer     Dim K As Integer     Dim sDay As String     Dim sTemp As String     Dim iTarget As Integer     Dim dBasis As Date

iTarget = 13     While (iTarget < 1) Or (iTarget > 12)

iTarget = Val(InputBox("Numeric month?"))

If iTarget = 0 Then Exit Sub     Wend

Application.ScreenUpdating = False     sTemp = Str(iTarget) & "/1/" & Year(Now())

dBasis = CDate(sTemp)

For J = 1 To 31         sDay = Format((dBasis + J - 1), "dddd mm-dd-yyyy")

If Month(dBasis + J - 1) = iTarget Then

If J <= Sheets.Count Then                 If Left(Sheets(J).Name, 5) = "Sheet" Then                     Sheets(J).Name = sDay                 Else                     Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay                 End If             Else                 Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay             End If         End If     Next J

For J = 1 To (Sheets.Count - 1)

For K = J + 1 To Sheets.Count             If Right(Sheets(J).Name, 10) > _               Right(Sheets(K).Name, 10) Then                 Sheets(K).Move Before:=Sheets(J)

End If         Next K     Next J

Sheets(1).Activate     Application.ScreenUpdating = True End Sub

Beachten Sie, dass das Makro davon ausgeht, dass der Monat, für den Sie Arbeitsblätter möchten, im aktuellen Jahr liegt. Wenn dies nicht der Fall ist, müssen Sie eine kleine Änderung vornehmen. Beachten Sie die folgende Zeile am Anfang des Makros:

sTemp = Str(iTarget) & "/1/" & Year(Now())

Nehmen wir an, Sie möchten aus irgendeinem Grund, dass der Monat 2015 ist. Ändern Sie einfach die Zeile wie folgt:

sTemp = Str(iTarget) & "/1/2015"

Das Makro setzt jeden Registerkartennamen gleich dem Wochentag, gefolgt vom tatsächlichen Datum, wie in „Mittwoch, 28.03.2020“. Wenn Sie die Art und Weise ändern möchten, in der die Registerkarten für jeden Tag benannt werden, ändern Sie einfach die Art und Weise, wie die Variable sDay im Makro erstellt wird.

Der letzte Schritt im Makro besteht darin, die Arbeitsblätter basierend auf den Tagen des Monats in der richtigen Reihenfolge zu platzieren. Das Ergebnis ist, dass wenn Sie noch andere Arbeitsblätter in der Arbeitsmappe haben (mit anderen Worten, Sie hatten einige, die nicht mit den Buchstaben „Blatt“ begannen), diese Arbeitsblätter am Ende der Arbeitsmappe nach den Blättern für jedes Arbeitsblatt landen Tag.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich hat eine spezielle Seite mit hilfreichen Informationen vorbereitet.

ExcelTips is your Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11523) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Sie finden eine Version dieses Tipps für ältere Benutzer Menüoberfläche von Excel hier: