ich habe es selbst ca. 3 Std probiert und komme nicht drauf.
Im Nachfolgenden Code wird mein Kalender erstellt. Allerdings
möchte ich die Wochenenden unterschiedlich Formatieren dafür habe ich einen
weiteren Code erstellt.
Leider Kann ich diesen nicht in den Kalender_erstellen integrieren.
Habt Ihr eine Idee?
Sub Kalender_erstellen()
Dim tag As Long
Dim Monat As Integer
Dim jahr As Integer
Dim ersterTag As Date
Dim letzterTag As Date
Dim zeile As Integer
Dim spalte As Integer
jahr = 2018
For Monat = 1 To 12
spalte = 5
With Sheets(MonthName(Monat))
'.Cells.Clear
zeile = 1
ersterTag = CDate("01." & Monat & "." & jahr)
letzterTag = DateSerial(Year(ersterTag), Month(ersterTag) + 1, 0)
.Cells(zeile, spalte) = ersterTag
For tag = ersterTag To letzterTag
.Cells(zeile, spalte) = tag
'Hier möchte ich den Code einfügen. Probeweise die nächste Zeile vom Or getrennt und etwas _
umgeschrieben. Jedoch bekomme ich nur fehlermeldungen.
If Weekday(tag) = 1 Or Weekday(tag) = 7 Then
.Cells(zeile, spalte).Interior.Color = vbRed
End If
Select Case tag
Case DateSerial(Year(tag), 1, 1) 'Neujahr
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 1, 6) 'Hl. drei Könige
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) - 2 'Karfreitag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) 'Ostersonntag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) + 1 'Ostermontag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 5, 1) 'Maifeiertag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) + 39 'Christi Himmelfahrt
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) + 49 'Pfingstsonntag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) + 50 'Pfingstmontag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case Ostern(Year(tag)) + 60 'Fronleichnam
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 8, 15) 'Maria Himmelfahrt
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 10, 3) 'Tag der D. Einheit
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 11, 1) 'Allerheiligen
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 12, 24) 'Heiliger Abend
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 12, 25) '1. Weihnachtstag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 12, 26) '2. Weihnachtstag
.Cells(zeile, spalte).Interior.Color = vbYellow
Case DateSerial(Year(tag), 12, 31) 'Sylvester
.Cells(zeile, spalte).Interior.Color = vbYellow
End Select
spalte = spalte + 1
Next tag
.Columns(spalte).NumberFormat = "DD DDD"
.Rows(1).NumberFormat = "DD DDD"
End With
Next Monat
End Sub
Sub WE_einfärben()
For sp = 5 To 35
If Weekday(Cells(1, sp).Value, 2) = 6 Then
With Columns(sp)
.Interior.ColorIndex = 48
.Font.Color = vbWhite
.ColumnWidth = 4.69
End With
End If
If Weekday(Cells(1, sp).Value, 2) = 7 Then
With Columns(sp)
.Interior.ColorIndex = 56
.Font.Color = vbWhite
.ColumnWidth = 4.69
End With
End If
Next
End Sub