Hallo zusammen,
ich habe folgendes Problem. Ich muss Änderungen in einem Tabellenblatt protokollieren. Meine Range geht von A1:M300000.
Bis jetzt habe ich es hinbekommen, das die Adresse der veränderten Zelle, der Benutzer, der alte Wert und der neue Wert protokolliert werden.
Jetzt möchte ich folgende Funktionen noch einfügen und benötige Hilfe. Es ist das erste mal mit dem ich mit VBA in Berührung komme:
Ich möchte, dass in meiner Protokolldatei auch der Wert einer Zelle in einer anderen Spalte angezeigt wird. Somit weiß ich, um welches Objekt es sich handelt. Beispiel Änderung Zelle B26 und jetzt soll auch A26 in der Protokolldatei angezeigt werden.
Des Weiteren möchte ich auch protokollieren, wenn neue Zellen eingefügt oder bestehende Datensätze gelöscht werden.
Anbei mein VBA Code:
Option Explicit
Dim mvntWert As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
Dim lngLast As Long
Set wks = Worksheets("Protokoll")
lngLast = wks.Range("A65536").End(xlUp).Row + 1
If Target.Count > 1 Then Exit Sub
If Intersect(Range("A1:M65536"), Target) Is Nothing Then Exit Sub
With wks
.Range("A" & lngLast).Value = Target.Address(0, 0)
.Range("B" & lngLast).Value = mvntWert
.Range("C" & lngLast).Value = Target.Value
.Range("D" & lngLast).Value = VBA.Environ("Username")
.Range("E" & lngLast).Value = Now
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Range("A1:M65536"), Target) Is Nothing Then Exit Sub
mvntWert = Target.Value
End Sub
Ich hoffe, dass mir jemand helfen kann. Vielen lieben Dank im Voraus.
Gruß
IronMan
|