Nunja ich kenn mich mit VBA nicht sonderlich aus, allerdings denke ich dass das Sub "Worksheet_Change" aufgerufen wird, wenn mit sich eine Zeile verändert. Target wird dabei sozusagen als eine Variable vom Typ "Excel.Range" mitgesendet und ist die Zeile die geändert wurde.
Der Fehler, liegt vermutlich darin, dass die If Anweisung nur 1 als Spalte zulässt.
Also das funktionierende Programm sollte also so aussehen:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column > 0 And Target.Value <> 0 Then
Target.Offset(0, 1).Value = Now
End If
End Sub
Bin mir da aber nicht sicher, probiers einfach mal aus.