Protokollierung aller Änderungen in einem separaten Blatt

Die Protokollierung von Änderungen in Excel kann besonders in Arbeitsmappen mit mehreren Nutzern oder sensiblen Daten von großem Nutzen sein. Eine automatische Aufzeichnung aller Änderungen in einem separaten Blatt schafft Transparenz und erleichtert das Nachverfolgen von Anpassungen. In diesem Artikel erfahren Sie, wie Sie dies mithilfe von VBA (Visual Basic for Applications) umsetzen können.

Ziel

Die Änderungen in einem Arbeitsblatt sollen automatisch in einem separaten Blatt protokolliert werden. Zu jeder Änderung sollen das Datum, die Uhrzeit, der Benutzername, der Zellbezug sowie der alte und der neue Wert gespeichert werden.

Voraussetzungen

  • Aktivierung von Makros in Ihrer Excel-Arbeitsmappe.
  • Zugriff auf den VBA-Editor.
  • Berechtigung zur Verwendung des Benutzernamens aus den Excel-Einstellungen.

Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen:
    • Drücken Sie Alt + F11, um den VBA-Editor zu starten.
  2. Neues Modul für die Protokollierung erstellen:
    • Wählen Sie im Projekt-Explorer das Zielarbeitsblatt aus.
    • Fügen Sie ein neues Modul hinzu: Einfügen > Modul.
    • Kopieren Sie den folgenden Code in das Modul:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim logSheet As Worksheet
 Dim lastRow As Long
 Dim oldValue As String

 ' Sicherstellen, dass die Änderung nur im relevanten Blatt protokolliert wird
 On Error Resume Next
 Set logSheet = ThisWorkbook.Worksheets("Protokoll")
 If logSheet Is Nothing Then
 Set logSheet = ThisWorkbook.Worksheets.Add
 logSheet.Name = "Protokoll"
 logSheet.Range("A1:E1").Value = Array("Datum", "Uhrzeit", "Benutzername", "Zelle", "Alter Wert", "Neuer Wert")
 End If
 On Error GoTo 0

 ' Alte Werte vor der Änderung speichern
 Application.EnableEvents = False
 oldValue = Target.Value

 ' Letzte beschriebene Zeile im Protokoll finden
 lastRow = logSheet.Cells(logSheet.Rows.Count, 1).End(xlUp).Row + 1

 ' Änderung protokollieren
 With logSheet
 .Cells(lastRow, 1).Value = Date
 .Cells(lastRow, 2).Value = Time
 .Cells(lastRow, 3).Value = Application.UserName
 .Cells(lastRow, 4).Value = Target.Address
 .Cells(lastRow, 5).Value = oldValue
 .Cells(lastRow, 6).Value = Target.Value
 End With

 Application.EnableEvents = True
End Sub


  1. Anpassungen am Code:
    • logSheet.Name: Der Name des Protokollblatts kann geändert werden.
    • Bereich definieren: Der Code protokolliert Änderungen an allen Zellen im Arbeitsblatt. Eingrenzungen sind möglich, z. B. durch Hinzufügen einer Bedingung wie If Not Intersect(Target, Range("A1:D100")) Is Nothing Then.
  2. Arbeitsmappe speichern:
    • Speichern Sie die Datei als "Excel-Arbeitsmappe mit Makros" (*.xlsm).

Testen der Protokollierung

  • Nehmen Sie Änderungen im Arbeitsblatt vor.
  • Öffnen Sie das Blatt "Protokoll" und überprüfen Sie, ob die Änderungen korrekt aufgezeichnet wurden.

Vorteile und Anwendungen

  • Transparenz: Nachvollziehbare Änderungen für alle Nutzer.
  • Fehleranalyse: Schnelles Zurückverfolgen von unbeabsichtigten Anpassungen.
  • Berichtsfunktion: Dokumentation von Arbeitsabläufen und Entscheidungen.

Fazit

Die automatische Protokollierung von Änderungen in Excel bietet zahlreiche Vorteile und kann mit dem hier vorgestellten Ansatz leicht umgesetzt werden. Sie sorgt für eine lückenlose Dokumentation und erleichtert die Zusammenarbeit in Teams. Probieren Sie es aus und optimieren Sie Ihre Arbeitsprozesse mit Excel!

Partnerlinks

Relevante Artikel

Wir benutzen Cookies
Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.