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

Forumthread: Ä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

Anzeige

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.

Anzeige
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

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

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

Infobox / Tutorial

Änderungen in Excel protokollieren


Schritt-für-Schritt-Anleitung

Um Änderungen in Excel zu protokollieren, kannst du die VBA-Programmierung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Navigiere zur Arbeitsmappe: Doppelklicke auf „DieseArbeitsmappe“ im Projektfenster.

  3. Füge den folgenden Code ein:

    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)
       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
  4. Speichere die Änderungen: Schließe den VBA-Editor und speichere deine Arbeitsmappe als „Excel-Makro-fähige Arbeitsmappe“ (*.xlsm).

  5. Teste das Protokoll: Ändere einige Werte in der Tabelle und speichere die Datei, um die Änderungen zu protokollieren.


Häufige Fehler und Lösungen

  • Fehler: „Die Tabelle3 existiert nicht“

    • Stelle sicher, dass du ein Arbeitsblatt mit dem Namen „Tabelle3“ in deiner Arbeitsmappe hast.
  • Fehler: Änderungen werden nicht protokolliert

    • Überprüfe, ob das Makro aktiviert ist. Gehe zu „Entwicklertools“ und aktiviere die Makros.
  • Fehler: Es erscheint ein Popup-Fenster

    • Um das Popup zu entfernen, kannst du die Zeile MsgBox StMeldung im Code auskommentieren oder löschen.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch das eingebaute Änderungsprotokoll in Excel aktivieren:

  1. Aktiviere das Änderungsprotokoll:
    • Gehe zu „Überprüfen“ > „Änderungen nachverfolgen“ > „Änderungen markieren“.
  2. Speichere die Datei: Excel erstellt eine Historie der Änderungen, die du später einsehen kannst.

Diese Methode ist einfacher, bietet jedoch weniger Flexibilität als ein VBA-basiertes Änderungsprotokoll.


Praktische Beispiele

  • Besprechungsprotokoll in Excel: Du kannst eine spezielle Tabelle für ein Besprechungsprotokoll anlegen. Füge Spalten für Teilnehmer, Datum, Themen und Änderungen ein, um alles festzuhalten.

  • Änderungsprotokoll für Projekte: Nutze das Änderungsprotokoll Excel, um Fortschritte bei Projekten zu dokumentieren. Jede Änderung kann mit dem entsprechenden Datum und Benutzer festgehalten werden.


Tipps für Profis

  • Automatisierung: Automatisiere das Protokollieren von Änderungen, indem du den Code anpasst, um spezifische Zellen oder Bereiche zu überwachen.
  • Datenanalyse: Verwende Pivot-Tabellen, um deine protokollierten Daten zu analysieren und visuelle Berichte zu erstellen.
  • Sicherheitsüberprüfung: Stelle sicher, dass deine Makros sicher sind, insbesondere wenn du die Datei mit anderen teilst.

FAQ: Häufige Fragen

1. Wie kann ich das Änderungsprotokoll in Excel wiederherstellen? Du kannst das Änderungsprotokoll anzeigen, indem du zu „Überprüfen“ > „Änderungen nachverfolgen“ gehst und die Änderungen prüfst.

2. Funktioniert das Änderungsprotokoll in allen Excel-Versionen? Ja, die meisten Excel-Versionen unterstützen das Änderungsprotokoll, jedoch können die genauen Schritte variieren. VBA-Funktionen sind ab Excel 2007 verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige