Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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

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

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

270 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige