Startseite

Zellen markieren

Über dieses Makro werden Zeiträume in einer Anwesenheitstabelle automatisch markiert, wenn das Datum und die Uhrzeiten eingetragen sind. Änderungen in einer dieser Zellen bewirken eine Änderung der betreffenden Markierung.
Das Makro wird in das Modul des Tabellenblattes eingebunden:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim start As Integer
Dim start1 As Integer
Dim ziel As Integer
Dim anz As Integer
If Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Then
    If Cells(Target.Row, 2) <> "" And Cells(Target.Row, 3) <> "" _
        And Cells(Target.Row, 4) <> "" Then
        Range("E" & Target.Row, "IV" & Target.Row).Interior.ColorIndex = xlNone
        start1 = 5
        start = Format(Cells(Target.Row, 3), "hh")
        ziel = Format(Cells(Target.Row, 4), "hh")
            Do While Cells(1, start1) <> Cells(Target.Row, 2)
                start1 = start1 + 1
            Loop
            If start > ziel Then
            anz = (24 - start) + ziel
            Else: anz = ziel - start
            End If
            start = start + start1
            anz = anz + start + 1
            Do While start < anz
                Cells(Target.Row, start).Interior.ColorIndex = 6
                start = start + 1
            Loop
    End If
End If
End Sub