Merkwürdigkeit bei Änderungsprotokoll
11.08.2004 10:13:40
Torsten
vor ein paar Tagen erhielt ich hier im Forum einen Code zu einem Änderungsprotokoll zu einem WS:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vNew As Variant, vOld As Variant, vMA As Variant, nam As Variant, vWo As Variant
Dim irow As Integer
If Intersect(Target, Range("I7:O87")) Is Nothing Then Exit Sub
vNew = Target.Value
vMA = Target.Row
vWo = Target.Column
nam = Range("I" & vMA)
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Application.Undo
vOld = Target.Value
Target.Value = vNew
With Worksheets("PROTOC")
irow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(irow, 1).Value = Environ("Username") 'Application.UserName
.Cells(irow, 2).Value = Date
.Cells(irow, 3).Value = Time
.Cells(irow, 4).Value = Target.Address(False, False)
.Cells(irow, 5).Value = Target.Value 'Value new
.Cells(irow, 6).Value = vOld
End With
ERRORHANDLER:
Application.EnableEvents = True
End Sub
In dem überwachten Range("I7:O87") sind aber Formeln hinterlegt, die sich auf andere Zellen beziehen. Wenn ich nun dort eine Formel (Sverweis) einfüge, ersetzt Excel die Formel sofort in den entsprechenden Wert. Das heißt die Dynamik der Formel ist verloren.
Das ganze funktioniert wieder, sobald in den VBA-Code auskommentiere.
Wie kann ich denn erreichen, daß ich eine Formel in den Range eingeben kann, ohne vorher die VBA-Zeilen auskommentieren zu müssen?
Für Eure Hilfe im voraus besten Dank.
Gruß
Torsten