Hallo,
Ich bin gerade am versuchen, einen Zeitstempel über mehrere Spalten zu machen.
Beispiel:
Wenn in Zellen Werte geändert werden von A1-N1 ("A:N") soll in der Zelle P1 der Zeitstempel erscheinen.
Ich hab den Code soweit, dass wenn ich in einer bestimmten Spalte den Wert änder, der Zeitstempel aktualisiert wird.
Nun möchte ich dies aber auf mehrere Spalten erweitern, jedoch bin ich nicht wirklich weiter gekommen.
Bisheriger Code:
Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColum As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("N:N"), Target)
xOffsetColumn = 2
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd MM yyyy, hh:mm:ss"
End If
Next
Application.EnableEvents = True
End If
End Sub
Fail 1
Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColum As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("A:N"), Target)
xOffsetColumn = 2
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd MM yyyy, hh:mm:ss"
End If
Next
Application.EnableEvents = True
End If
End Sub
Wenn ich nun den Range auf ("A:N") erweitere klappt zwar der Zeitstempel, aber er erscheint jeweils zwei Zeilen hinter der geänderten Zelle (da xOffsetColumn = 2)
Fail 2
Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColum As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("A:N"), Target)
xOffsetColumn = ("P:P")
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd MM yyyy, hh:mm:ss"
End If
Next
Application.EnableEvents = True
End If
End Sub
Wenn ich den xOffsetColumn auf ("P:P") setze erscheint Laufzeitfehler '13' "Typen unverträglich". Beim Korrigieren markiert er
Rng.Offset(0, xOffsetColumn).Value = Now
zum debuggen.
Wo liegt da mein Fehler?
Vielen Dank schonmal
|