Gibt es eine Möglichkeit in Excel die Arbeitsblätter fortlaufend so zu benennen von z.b. So 01.01.2017 - So 31.12.2017, also nicht manuell sondern automatisch?

2 Antworten

So sollte es gehen. Ich kenne keinen direkteren Weg um mit VBA auf die deutschen Wochentage zu kommen. Sonst ginge auch worksheetfunction.text (also wie mit der benutzterdefinierten Zellformatierung), dann sind die Tage aber englisch.

Sub tageanlegen()
Dim datum As Date
datum = "01.01.2017"
For i = 1 To 365
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Choose(WorksheetFunction.Weekday(datum, 2), "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So") & " " & datum
datum = DateAdd("d", 1, datum)
Next
End Sub

Oubyi, UserMod Light  30.12.2016, 19:51
DH!

Schöne Lösung für den Wochentag. Ich hatte es alternativ mit
= WorksheetFunction.Text(datum, "DDD DD.MM.YYYY")
versucht, aber so bekomme ich nur die englische Version der Wochentage angezeigt. Das deutsche Format (TTT...) wird nicht akzeptiert und Text.Local oder so gibt es wohl nicht.

0
Ninombre  30.12.2016, 21:35
@Oubyi, UserMod Light

dann bin ich irgendwie beruhigt, denn ich hab das auch nicht auf diese Weise mit deutschen Bezeichnungen hinbekommen.

0
Iamiam  31.12.2016, 13:54
@Ninombre

Gibts analog Formulalocal vllt auch Worksheetfunctionlocal? (kanns grad nicht testen)

Ich empfehle aber immer wieder anstatt komplexer und Gebietsschema-abhängiger Datumsfunktionen das  einfache Rest(datum, 7) in diesem Fall +1 (weil choose beim 2. Argument kein 0 kennt) und dann 1="Sa"....7="Fr" (normalerweise 0=Sa und 6=Fr)

0

Ja, mit VBA geht das.

Lohnt sich aber nur, wenn du das öfter brauchst, oder mehr als 50 Blätter mit diesen Blattnamen versehen musst.