Hallo zusammen,
ich habe ein Excelsheet, das von mehreren Personen genutzt wird. Darin stehen Termine und Datums drin. Wenn jetzt ein User ein Datum verändert, möchte ich das gerne protokolliert haben. Dazu habe ich folgenden Code benutzt:
[code]Private Sub Worksheet_Change(ByVal Target As Range)
Dim vNew As Variant, vOld As Variant
Dim iRow As Integer
If Intersect(Target, Range("A1:E12")) Is Nothing Then Exit Sub
vNew = Target.Value
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Application.Undo
vOld = Target.Value
Target.Value = vNew
With Worksheets("Protokollierung")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(iRow, 1).Value = Target.Address(False, False)
.Cells(iRow, 2).Value = vOld
End With
ERRORHANDLER:
Application.EnableEvents = True
End Sub[code]
Soweit alles in Ordnung, das läuft wunderbar. Allerdings zeigt es mir im Protokoll nur an, welche Zelle verändert wurde und was vorhin dringestanden hat. Wie muss ich den Code erweitern, dass mir noch folgende andere Dinge angezeigt werden?
1. der neue Zellwert soll auch übertragen werden
2. der zugehörige Termin ebenfalls (steht in Spalte daneben)
3. der User, der die Veränderung gemacht hat
4. das Datum der Veränderung
Kann mir jemand helfen?
Grüße von Klaus
|