Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ände

Ände
23.06.2021 13:27:03
Iron
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
Anbei die Datei:
https://www.herber.de/bbs/user/146743.xlsm
Ich hoffe, dass mir jemand helfen kann. Vielen lieben Dank im Voraus.
Gruß
IronMan

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ände
23.06.2021 16:34:14
Herbert_Grom
Hallo,
ich kann mir nicht vorstellen, wie die 300.000 Zeilen mit diesem Code verarbeiten willst oder bereits konntest, denn deine Abfragen gehen nur bis Zeile 65.536! Vor allem die nachfolgende Zeile verhindert, dass du die Daten in den Zeilen über 65.536 verarbeiten/protokollieren kannst:

If Intersect(Range("A1:M65536"), Target) Is Nothing Then Exit Sub
Servus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige