Ich verwende für die Protokollierung von Änderungen folgenden Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wert1 As Variant
Dim Wert2 As Variant
Dim letzterWert As Integer
Dim geänderteZeile As Integer
Dim geänderteSpalte As Integer
If Sheets("ÜberwachtesTabellenblatt").Range("L1") = "" Then Exit Sub
If Target.Row 12 Then Exit Sub
letzterWert = Sheets("Protokollierung").Cells(1048558, 5).End(xlUp).Row + 1
If Target.Cells.Count > 1 Then Exit Sub
Wert2 = Target.Value
On Error GoTo Fehler
Application.EnableEvents = False
Application.Undo
Wert1 = Target.Value
Target.Value = Wert2
geänderteZeile = Target.Row
geänderteSpalte = Target.Column
If Wert1 Wert2 Then
With Sheets("Protokollierung")
.Cells(letzterWert, 1) = Left(Sheets("ÜberwachtesTabellenblatt").Cells(geä _
nderteZeile, 12), 40 - 4)
.Cells(letzterWert, 2) = Sheets("ÜberwachtesTabellenblatt").Cells(7, geä _
nderteSpalte)
.Cells(letzterWert, 3) = Wert1
.Cells(letzterWert, 4) = Wert2
.Cells(letzterWert, 5) = Format(Now, "dd.mm.yyyy hh:mm:ss")
.Cells(letzterWert, 6) = Application.UserName
End With
End If
Fehler:
Application.EnableEvents = True
End Sub
Dieser Code funktioniert eigentlich sehr gut, nur das es mir im überwachten Tabellenblatt immer die Formatierungen (Fett, Kursiv, etc.) löscht.
Wie kann ich dieses Problem lösen um die Formatierungen im überwachten Tabellenblatt beizubehalten?
Vielen Dank für eure Hilfe
Freundliche Grüsse
Patric