AW: Änderungen überwachen
Tino
Hallo,
ok. hier mal ein Beispiel.
Es wird im Ordner der Exceldatei eine ini angelegt mit dem Namen Daten.ini.
Wie oben aber schon beschrieben, würde ich den Bereich einschränken sonst dauert das schreiben zu lange.
Persönlich finde ich den Vorschlag von Hajo aber schon besser.
kommt als Code in die Tabelle
Option Explicit
Dim iniClass As Klasse1
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, FZelle As Range
Dim strString As String, AlterWert As String
Set iniClass = New Klasse1
For Each Bereich In Target
strString = Environ$("Username") & ";" & Format(Now, "hh:mm dd.mm.yy") & ";" & Bereich.Value
AlterWert = iniClass.GetPrivateProfileString("AlterWert", Bereich.Address)
iniClass.WritePrivateProfileString "NeuerWert", Bereich.Address, strString & " --> alter Wert:" & AlterWert
iniClass.WritePrivateProfileString "AlterWert", Bereich.Address, strString
Next Bereich
Set iniClass = Nothing
End Sub
Klassenmodul Klasse1
Option Explicit
Private Declare Function GetPrivateProfileString_ Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString_ Lib "kernel32" _
Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpFileName As String) As Long
Public Function GetPrivateProfileString(Sektion$, Key$) As String
Dim A As Long, Wert As String, Datei As String
Datei$ = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
Datei$ = Datei$ & "Daten.ini"
Wert = Space$(255)
A = GetPrivateProfileString_(Sektion$, Key$, "", Wert$, Len(Wert$), Datei$)
GetPrivateProfileString = Left$(Wert$, A&)
End Function
Public Function WritePrivateProfileString(ByVal Sektion$, ByVal Key$, ByVal Wert$)
Dim A As Long, Datei As String
Datei$ = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
Datei$ = Datei$ & "Daten.ini"
A = WritePrivateProfileString_(Sektion$, Key$, Wert$, Datei$)
End Function
Gruß Tino