Option
Explicit
Private
Sub
Workbook_SheetChange(
ByVal
Sh
As
Object
,
ByVal
Target
As
Range)
If
Sh
Is
Nothing
Or
Target
Is
Nothing
Then
Exit
Sub
End
If
Dim
wksChange
As
Worksheet, wksLog
As
Worksheet
Dim
lLastRow
As
Long
On
Error
GoTo
cleanUp
Set
wksChange = Sh
Set
wksLog = ThisWorkbook.Worksheets(
"Tabelle1"
)
If
wksChange.Name = wksLog.Name
Then
GoTo
cleanUp
End
If
lLastRow = wksLog.Cells(wksLog.Rows.Count, 1).
End
(xlUp).Row + 1
With
wksLog
.Cells(lLastRow, 1).Value = Now
.Cells(lLastRow, 2).Value = Environ(
"username"
)
.Cells(lLastRow, 3).Value = wksChange.Name
.Cells(lLastRow, 4).Value = Target.Address
End
With
On
Error
GoTo
0
cleanUp:
If
Err.Number <> 0
Then
Dim
sPromt
As
String
sPromt =
"Es ist leider ein Fehler aufgetreten."
& vbCrLf & _
"Fehlernummer: "
& Err.Number & vbCrLf & _
"Fehlerbeschreibung: "
& Err.Description
MsgBox sPromt, vbExclamation,
"Fehler"
End
If
Set
wksChange =
Nothing
Set
wksLog =
Nothing
End
Sub