Kann man ein Makro nach eingabe in eine Zelle auslösen. Hier das Pentant aus Excel.
Code: Alles auswählen
Private Sub worksheet_change(ByVal target As Range)
On Error GoTo Ende
If target.Address = "$F$4" Then Call Aendern
Ende:
End Sub
Funktionsweise: Zuerst werden anhand der Feiertagsliste und der Sonntage/Samstage selbige entsprechend eingefärbt. Anschließend wird in Spalte W ein F eingetragen (wird für weitere Berechnungen benötigt).
Code: Alles auswählen
Sub Aendern()
Application.EnableCancelKey = xlDisabled
On Error Resume Next
Application.ScreenUpdating = False
Sheets("Zeitnachweis").Unprotect passw
Week_end
Week_day
Week_frei
Week_end2
Week_day2
Sheets("Zeitnachweis").Protect passw
Application.ScreenUpdating = True
End Sub
Private Sub Week_end()
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 Weekday(cell, vbMonday) = 7 Then
cell.Font.ColorIndex = 3
ElseIf Weekday(cell, vbMonday) = 6 Then
cell.Font.ColorIndex = 5
Else
cell.Font.ColorIndex = 0
End If
Next cell
End Sub
Private Sub Week_end2()
Application.EnableCancelKey = xlDisabled
Dim cell As Object
On Error Resume Next
Dim Zeile As Range
For Each cell In Worksheets("Zeitnachweis").Range("AB13:AB743")
If Weekday(cell, vbMonday) = 7 Then
cell.Font.ColorIndex = 3
ElseIf Weekday(cell, vbMonday) = 6 Then
cell.Font.ColorIndex = 5
Else
cell.Font.ColorIndex = 0
End If
Next cell
End Sub
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
ElseIf cell.value = Sheets("Feiertage").Range("A5").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A6").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A7").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A8").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A9").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A10").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A11").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A12").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A13").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A14").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A15").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A16").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A17").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A18").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A19").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A20").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A21").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A22").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A23").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A24").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A25").value Then
cell.Font.ColorIndex = 3
Else
End If
Next cell
End Sub
Private Sub Week_day2()
Application.EnableCancelKey = xlDisabled
Dim cell As Object
On Error Resume Next
Dim Zeile As Range
For Each cell In Worksheets("Zeitnachweis").Range("AB13:AB743")
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
ElseIf cell.value = Sheets("Feiertage").Range("A5").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A6").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A7").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A8").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A9").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A10").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A11").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A12").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A13").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A14").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A15").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A16").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A17").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A18").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A19").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A20").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A21").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A22").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A23").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A24").value Then
cell.Font.ColorIndex = 3
ElseIf cell.value = Sheets("Feiertage").Range("A25").value Then
cell.Font.ColorIndex = 3
Else
End If
Next cell
End Sub
Private Sub Week_frei()
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.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A2").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A3").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A4").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A5").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A6").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A7").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A8").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A9").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A10").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A11").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A12").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A13").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A14").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A15").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A16").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A17").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A18").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A19").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A20").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A21").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A22").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A23").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A24").value Then
cell.Offset(0, 21).value = "F"
ElseIf cell.value = Sheets("Feiertage").Range("A25").value Then
cell.Offset(0, 21).value = "F"
Else
cell.Offset(0, 21).value = ""
End If
Next cell
End Sub
Gruß, René