ich erstelle mit unten stehendem Code (danke an Christian und Werner !) eine Textdatei, die bestimmte Änderungen in einer Exceltabelle zur Datensicherung protokolliert.
Das klappt soweit super, bis auf folgende Frage, auf die ich bisher noch keine Antwort gefunden habe - wisst Ihr Rat ?
Wenn der Inhalt einer Zelle gelöscht wird, erscheint dies momentan einfach als Leerfeld in der Textdatei.
Was muss ich ändern, damit in diesem Fall der Wert "---" in der Textdatei erscheint ?
Aktueller Code:
Option Explicit
Dim mstrOld(1 To 1000, 1 To 16384) As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1000 Then Exit Sub
Dim strDatei As String, strText As String
Dim intFile As Integer, rng As Range
Const strDELIM As String = " | "
intFile = FreeFile
With ThisWorkbook
strDatei = "C:\Users\Notebook\Desktop\My Documents\LogFiles\LogFile_" & Replace(.Name, " _
.xlsm", "") & ".txt"
End With
Open strDatei For Append As #intFile
If LOF(intFile) = 0 Then
strText = "Date & Time | User | Cell | Old Value | New Value"
Print #intFile, strText
End If
For Each rng In Target.Cells
If rng.Value mstrOld(rng.Row, rng.Column) Then
strText = _
Format(Now, "YYYY/MM/DD hh:mm") & strDELIM & _
Environ("username") & strDELIM & _
rng.Address & strDELIM & _
mstrOld(rng.Row, rng.Column) & strDELIM & _
rng.Value & strDELIM
Print #intFile, strText
End If
Next
Close #intFile
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 1000 Then Exit Sub
Dim rng As Range
For Each rng In Target.Cells
mstrOld(rng.Row, rng.Column) = rng.Value
Next
End Sub
VG und vielen Dank Euch im Voraus, Tim