Private Sub Worksheet_Change(ByVal Target As Excel.Range) ' wird im definierten Bereich ein Wert geändert, wird in der nächsten Spalte das Datum eingetragen ' das Datum wird entfernt falls die Eingabe gelöscht wird ' wird im definierten Bereich eine Eingabe überschrieben wird das Datum nicht verändert Dim RaBereich As Range ' Variable fü überwachten Bereich Dim RaZelle As Range ' Variable für Zelle die zur Zeit bearbeitet wird Set RaBereich = Range("P2:P350") ' Bereich der Wirksamkeit ' ActiveSheet.Unprotect Set RaBereich = Intersect(RaBereich, Range(Target.Address)) ' prüfen ob veränderte Zelle im überwachten Bereich If RaBereich Is Nothing Then Exit Sub ' keine Zelle im überwachten Bereich Application.EnableEvents = False ' Reaktion auf Eingabe abschalten Application.ScreenUpdating = False ' Bildschirm abschalten For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im überwachten Bereich select case RaZelle case "L","VS","LCO2","VSCO2" 'Mache einfach nichts case else If RaZelle = "" Then RaZelle.Offset(0, 8) = "" ' 0, 8 Das Ergebnis wir 8 Spalten nach rechts wieder eingefügt ElseIf RaZelle.Offset(0, 8) = "" Then RaZelle.Offset(0, 8) = Date End If end select Next RaZelle ' ActiveSheet.protect Application.ScreenUpdating = True ' Bildschirm einschalten Application.EnableEvents = True ' Reaktion auf Eingabe einschalten Set RaBereich = Nothing ' Variable leeren End Sub Alternativ für den select-case-Bereich select case RaZelle case "L","VS","LCO2","VSCO2" 'Mache einfach nichts case "" RaZelle.Offset(0, 8) = "" ' 0, 8 Das Ergebnis wir 8 Spalten nach rechts wieder eingefügt case else If RaZelle.Offset(0, 8) = "" Then RaZelle.Offset(0, 8) = Date End If end select