Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Protokoll mit VBA incl. Zeile new/delete

Protokoll mit VBA incl. Zeile new/delete
21.12.2022 12:12:22
Ch
Hallo,
die Funktion:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count) + 1
.Cells(LoLetzte, 1) = Target.Address
.Cells(LoLetzte, 2) = Target
.Cells(LoLetzte, 3) = Sh.Name
.Cells(LoLetzte, 4) = Environ("Username")
End With
Application.EnableEvents = True
End Sub
protokolliert sehr gut, in welcher Zelle die Daten wie geändert wurden. Aber wenn eine neue Zeile oder Spalte eingefügt wird, dann wird als Target (Änderung) nichts ausgegeben. Ich würde aber gerne unterscheiden, ob die Zeile/Spalte gelöscht oder eingefügt wurde.
Hat da jemand eine Idee?
Vielen Dank
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Protokoll mit VBA incl. Zeile new/delete
21.12.2022 12:31:41
Fennek
Hallo,
teste mal mit:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lr As Long
Application.EnableEvents = False
With Worksheets("Protokoll")
lr = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count) + 1
.Cells(lr, 1) = Target.Address
.Cells(lr, 2) = Target.Cells(1)
.Cells(lr, 3) = Sh.Name
.Cells(lr, 4) = Environ("Username")
.Cells(lr, 5) = Now
.Cells(lr, 6) = ActiveCell.Address
.Cells(lr, 7) = Sh.UsedRange.Address
End With
Application.EnableEvents = True
End Sub
mfg
Anzeige
AW: Protokoll mit VBA incl. Zeile new/delete
21.12.2022 12:37:20
Yal
Hallo Ch,
das Löschen einer Spalte/Zeile kann man als Änderung von Zellenwert einsehen, aber nicht das Einfügen einer neuen Spalte/Zeile. Weil die nur Zelle dann grundsätzlich leer sind.
Aber Du hast damit ein weiteres Problem: Wenn Du vor der Spalte "A" eine neue Spalte einfügst, sind alle Adressen deinen bisherigen Protokollierung neu zu interpretieren: was A1 war, ist jetzt B1. Viel Spass damit.
Mein Vorschlag: stelle durch Blattschutz sicher, dass keine Zeile/Spalte eingefügt/gelöscht werden darf.
Ansonsten: es gibt wohl einen Grund, warum Excel diese scheinbar einfache Funktionalität nicht out-of-the-box anbietet.
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige