Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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 protokollieren

Änderungen protokollieren
18.11.2013 15:59:45
MasterEytukan
Moin Moin Forum,
habe einen älteren Beitrag gefunden der mir sehr geholfen hat.
(Geschrieben am: 16.01.2013 14:05:28; von: Hajo_zi)
Folgendes ist bei mir anders. Meine Protokolldatei ist Schreibgeschützt mit Passwort.
Kann ich das im Code einbinden?
Option Explicit
Dim LoLetzte As Long
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Worksheets("Protokoll")
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")
.Cells(LoLetzte, 5) = Format(Now, "dd-mmm-yyyy ddd. hh:mm:ss") & " Uhr"
End With
Application.EnableEvents = True
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen protokollieren
18.11.2013 16:16:56
Rudi
Hallo,
dann heb den Schutz auf.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim LoLetzte As Long
Application.EnableEvents = False
With Worksheets("Protokoll")
.Unprotect "Passwort"
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")
.Cells(LoLetzte, 5) = Format(Now, "dd-mmm-yyyy ddd. hh:mm:ss") & " Uhr"
.Protect "Passwort"
End With
Application.EnableEvents = True
End Sub

Gruß
Rudi

Anzeige
AW: Änderungen protokollieren
18.11.2013 16:47:39
MasterEytukan
Moin Moin Rudi,
Gut das funktioniert schon mal.
Jetzt öffnet er das Arbeitsblatt führt die Aktionen durch und schließt es wieder.
Leider sehe ich das alles auch noch. Kann er das nicht im Hintergrund ausführen?
Den jede Änderung verursacht eine Abwahl der gerade verwendeten Zelle.
Ich möchte nur erreichen, das niemand ohne das gesetzte Passwort Einträge löschen kann.
Oder kann ich Per VBA-Code das Löschen allgemein verhindern?
Danke im voraus für die Antworten...

AW: Änderungen protokollieren
19.11.2013 12:23:14
Rudi
Hallo,
keine Ahnung was du meinst.
Da wird nix geöffnet und geschlossen.
Gruß
Rudi

Anzeige
AW: Änderungen protokollieren
19.11.2013 14:39:58
MasterEytukan
Hi,
Wenn ich dann eine Zelle verändere, öffnet er innerhalb von Millisekunden das Protokolldokument, hebt den Schutz auf, trägt die Daten ein, Aktiviert den Schutz wieder und Wechselt wieder in das Hauptdokument.
Nachdem er dieses Prozedere Verwendet hat, ist die Zelle die Bearbeitet wurde wieder abgewählt und muss nun per Maus klick wieder angewählt werden.
Deswegen lasse ich das mit dem Blattschutz und versuche eher das manuelle löschen der Eintragungen zu verhindern. Gleichzeitig sollen die Protokolldaten nach einer bestimmten zeit Automatisch gelöscht werden.

AW: Änderungen protokollieren
20.11.2013 16:25:44
MasterEytukan
Hi,
Kann ich durch das geführte Protokoll die Zeilen löschen lassen die älter sind als 30 Tage?
Dim LoLetzte As Long
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
With Worksheets("Protokoll")
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")
.Cells(LoLetzte, 5) = Format(Now, "dd-mmm-yyyy ddd. hh:mm:ss") & " Uhr"
End With
Application.EnableEvents = True
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige