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

Änderungen Dokumentieren Nr2

Änderungen Dokumentieren Nr2
21.08.2015 15:58:20
Alexander
Hallo Leute
Habe im Beitrag schon ein paar fragen gestellt nun habe ich alles eingefügt und alles passt.
https://www.herber.de/forum/archiv/1432to1436/t1435248.htm
Jetzt sind wir bei Zeile 499 und jetzt wird jedoch nur noch die Zeile 2 beschrieben.

Könnt Ihr mir noch ein bisschen helfen?
Gruss ALex
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lngZeile As Long
Application.EnableEvents = False
With Worksheets("Änderungen_dokumentieren")
lngZeile = .Range("A65536").End(xlUp).Row + 1
If lngZeile > 499 Then lngZeile = 2 ' oder 1, falls keine Überschrift vorh.
.Cells(lngZeile, 1).Value = Environ("UserName") 'Änderungen_dokumentieren
.Cells(lngZeile, 2).Value = Date 'Datum
.Cells(lngZeile, 3).Value = Time 'Zeit
.Cells(lngZeile, 4).Value = Sh.Name 'Blattname, auf dem geändert wurde
.Cells(lngZeile, 5).Value = Target.Address 'Zelle der Änderung
.Cells(lngZeile, 6).Value = oldValue 'vorheriger Wert
.Cells(lngZeile, 7).Value = Target.Value 'neuer Eintrag
End With
Application.EnableEvents = True
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen Dokumentieren Nr2
21.08.2015 16:29:33
Michael
Hi Alex,
es wäre mir lieber gewesen, wenn Du meinen Vorschlag zur Ermittlung der untersten Zeile übernommen hättest...
[DeineVariable] = .Cells(Rows.Count, 1).End(xlUp).Row + 1

... oder so, wenn Dir Range besser gefällt ...
lngZeile = .Range("A" & Rows.Count).End(xlUp).Row + 1
...denn das ist völlig unabhängig von der Excel-Version.
Aber egal.
Das Problem ist mir völlig logisch: durch das Schreiben der neuen Werte in Zeile 2 wird ja die Anzahl der beschriebenen Zeilen nicht geändert, d.h. es sind dann immer mehr als 499.
Am besten ist, Du schreibst den Wert unter die unterste, ermittelte Zeile und löschst anschließend die Zeile 2.
Ich denke, das ist zeitkritisch: wenn Du bei jeder Änderung löschst, hat Excel reichlich zu tun!
Deshalb solltest Du vielleicht gleich immer 50 Zeilen in einem Rutsch löschen oder so.
Also etwa so (ungetesteter Ausschnitt):
With Worksheets("Änderungen_dokumentieren")
lngZeile = .Range("A" & Rows.Count).End(xlUp).Row + 1
If lngZeile > 499 Then
.Rows("2:50").Delete
lngZeile = .Range("A" & Rows.Count).End(xlUp).Row + 1
end if
.Cells(lngZeile, 1).Value = Environ("UserName") 'Änderungen_dokumentieren
.Cells(lngZeile, 2).Value = Date 'Datum
.Cells(lngZeile, 3).Value = Time 'Zeit
.Cells(lngZeile, 4).Value = Sh.Name 'Blattname, auf dem geändert wurde
.Cells(lngZeile, 5).Value = Target.Address 'Zelle der Änderung
.Cells(lngZeile, 6).Value = oldValue 'vorheriger Wert
.Cells(lngZeile, 7).Value = Target.Value 'neuer Eintrag
End With
Schöne Grüße,
Michael

Anzeige
AW: Änderungen Dokumentieren Nr2
21.08.2015 16:42:31
Alexander
Danke Michael
Ja habe gedacht das ist was ganz anderes, Entschuldigung.
Habe jetzt deine Version vom ersten Forumeintrag genommen.
Die Funktioniert super ...danke.
Somit erledigt

freut mich, danke für die Rückmeldung owT
21.08.2015 16:53:29
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige