Ich möchte Feiertage einfärben. Die Feiertage stehen hierbei in einer Tabelle. Das Originalmakro aus Excel (Auszug) Hierbei werden die Zellen im Bereich "B13:B743" in einer Schleife durchlaufen und der Zellinhalt mit der Feiertagsliste in einem anderen Tabellenblatt verglichen. Bei Übereinstimmung wird die Schrift rot gefärbt.
Code aus Excel:
Code: Alles auswählen
Private Sub Week_day()
Application.EnableCancelKey = xlDisabled
Dim cell As Object
On Error Resume Next
Dim Zeile As Range
For Each cell In Worksheets("Zeitnachweis").Range("B13:B743")
If cell.value = Sheets("Feiertage").Range("A1").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A2").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A3").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A4").value Then
cell.Font.ColorIndex = 3
Else
End If
Next cell
Code: Alles auswählen
Sub FeiertageFärben
Dim oCell As Object
On Error Resume Next
Rem Hier wird "Range" angemeckert
Dim Zeile As Range
ThisComponent.Sheets(0).Unprotect("Kennwort")
Rem Diese Zeile bekomme ich nicht hin
For Each oCell In ThisComponent.Sheets(0).GetCellRangeByName("B13:B743")
If oCell.value = ThisComponent.Sheets(3).GetCellRangeByName("A1").Value Then
oCell.Font.ColorIndex = 3
ElseIf oCell.value = ThisComponent.Sheets(3).GetCellRangeByName("A2").Value Then
oCell.Font.ColorIndex = 3
ElseIf oCell.value = ThisComponent.Sheets(3).GetCellRangeByName("A3").Value Then
oCell.Font.ColorIndex = 3
ElseIf oCell.value = ThisComponent.Sheets(3).GetCellRangeByName("A4").Value Then
oCell.Font.ColorIndex = 3
Else
End if
Next oCell
ThisComponent.Sheets(0).Protect("Kennwort")
End Sub[[
Gruß, René