der folgende Code protokolliert alle Eingaben in einer LogDatei.
Ich sollte eine Erweiterung haben, so dass in der LogDatei bei jedem Datensatz auch der Dateiname (wenn möglich incl. Pfad) angegeben wird.
Ist das auch möglich?
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
logFile "Close (" & IIf(Me.Saved, "S", "Uns") & "aved)"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
logFile "Print (" & Application.ActivePrinter & ")"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
logFile "Save"
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
logFile "Sheet Add", Sh.Name
End Sub
Private Sub Workbook_Open()
logFile "Open"
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
logFile "Change", Sh.Name, Target.Address(0, 0), Target(1, 1).Value
End Sub
Public Sub logFile(ByVal Action As String, Optional Sheet As String, Optional ByVal Target As _
String, Optional ByVal Value As String)
Dim strLogFile As String, strTmp As String, strAux As String * 12
' strLogFile = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name & "_log.txt"
'oder
strLogFile = "C:\Ordner\log.txt"
strTmp = Format(Now, "dd.MM.yyyy hh:mm:ss") & vbTab
strAux = Environ("USERNAME")
strTmp = strTmp & strAux
strAux = Action
strTmp = strTmp & strAux
If Len(Sheet) Then strAux = Sheet: strTmp = strTmp & strAux
If Len(Target) Then strAux = Target: strTmp = strTmp & strAux
If Len(Value) Then strTmp = strTmp & Value
Open strLogFile For Append As #1
Print #1, strTmp
Close #1
End Sub
Danke für die Hilfe und Servus, Walter