Anzeige
Archiv - Navigation
1292to1296
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
16.01.2013 14:02:08
Erwin
Geschätztes Forum!
Ich bitte um Euere Hilfe für ein Problem, welches meine Excel Kenntnisse bei weitem übersteigt:
Ich möchte in einer Excel Tabelle ein Verlaufsprotokoll haben, welches mir alle User, welche auf die Mappe zugreifen mitprokolliert und auch die gemachten Änderungen anzeigt.
Dafür habe ich bereits ein Makro:
Option Explicit

Private Sub Workbook_Open()
With Sheets("Ausgeblendet")
With .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
.Value = Environ("USERNAME")
.Offset(0, 1) = Now
End With
End With
End Sub

Nun sollten aber sämtliche Änderungen welche der User in dieser Sitzung ändert,(z.B. in irgendeiner Zelle Zahl 5 auf 6 geändert und gleichzeitig auch Änderungen in andere Zellen), mitgeschrieben werden.
Geht das überhaupt und wenn ja - bitte ich um Hilfe !!
Danke im voraus !!
Liebe Grüße Erwin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen protokollieren
16.01.2013 14:05:28
Hajo_zi
Hallo Erwin,
warum VBA? aktiviere das Änderungsprotokoll.
Option Explicit
Dim LoLetzte As Long
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
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Sicherungen Protokollieren
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count) + 1
.Cells(LoLetzte, 1) = Now
.Cells(LoLetzte, 2) = Environ("Username")
End With
End Sub
Private Sub Workbook_Open()
' die letzten 10 Veränderungen anzeigen
Dim LoI As Long
Dim LoJ As Long
Dim StMeldung As String
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, . _
Rows.Count) + 1
If LoLetzte > 10 Then LoJ = LoLetzte - 11
For LoI = LoJ + 1 To LoLetzte
StMeldung = StMeldung & .Cells(LoI, 1).Text & " " & .Cells(LoI, 2) & Chr(13)
Next LoI
MsgBox StMeldung
End With
End Sub

Anzeige
AW: Änderungen protokollieren
16.01.2013 14:27:16
Erwin
Hallo Hajo!
Ich bin beeindruckt !!!!!
Die Lösung funktioniert perfekt.
Gibt es noch eine Möglichkeit, dass das Feld, welches beim Öffnen der Datei mit OK bestätigt werden muss, nicht erscheint.
Danke für Deine rasche Hilfe !!
liebe Grüße
Erwin

AW: Änderungen protokollieren
16.01.2013 14:45:27
Hajo_zi
Hallo Erwin,
entweder 'MsgBox StMeldung
oder Zeile Löschen.

AW: Änderungen protokollieren
16.01.2013 15:10:57
Erwin
Hallo Hajo!
Funktioniert SUPPPPER !!
Nochmals herzlichen Dank für Deine Hilfe
liebe Grüße und einen schönen Tag noch
Erwin

Anzeige
und wo geht die Aktivierung ? owT
16.01.2013 15:57:17
Rainer
Lieber Hajo,
kannst du mir sagen wie das geht ?
Tausend Dank
und VG R

AW: und wo geht die Aktivierung ? owT
16.01.2013 16:41:46
Hajo_Zi
Den Code unter DieseArbeitsmappe kopieren. Tabelle3 sollte vorhanden sein.
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf DieseArbeitsmappe, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt in der gesamten Datei.
Gruß Hajo

Super Herzlichen Dank@Hajo owT
16.01.2013 17:02:00
Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge