Änderungen aus Tabellenblättern protokollieren
Schritt-für-Schritt-Anleitung
Um Änderungen in Excel zu protokollieren, kannst du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:
-
Öffne die Excel-Datei, in der du Änderungen protokollieren möchtest.
-
Klicke mit der rechten Maustaste auf den Tab des Arbeitsblatts, das du überwachen möchtest, und wähle „Code anzeigen“.
-
Füge den folgenden VBA-Code in das Codemodul ein:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Const Logfilename = "\Archiv\\Aenderungen_log.txt"
Dim User As String
Dim Logfile As String
Dim Zelle As Range
Dim S_Alpha As String
User = UserName()
Logfile = ActiveWorkbook.Path & Logfilename
Open Logfile For Append As #1
If Target.Column > 26 Then
S_Alpha = Chr(Asc("A") + (Target.Column \ 26) - 1) & Chr(Asc("A") + (Target.Column Mod 26) - 1)
Else
S_Alpha = Chr(Asc("A") + Target.Column - 1)
End If
If Target.Cells.Count = 1 Then
Print #1, Date & ", " & User & ": " & "geänderter Bereich = " & ActiveSheet.Name & ", " & S_Alpha & Target.Row & Chr(13) & _
"alter Wert = """ & AlterWert & """" & Chr(13) & _
"neuer Wert = """ & Target.Text & """" & Chr(13)
Else
For Each Zelle In Target
Print #1, Date & ", " & User & ": " & "geänderter Bereich = " & ActiveSheet.Name & ", " & S_Alpha & Zelle.Row & Chr(13) & _
"alter Wert = """ & "nicht zu ermitteln" & """" & Chr(13) & _
"neuer Wert = """ & Zelle.Text & """" & Chr(13)
Next Zelle
End If
Close #1
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
AlterWert = Target
End Sub
Function UserName() As String
Dim B As String * 100
Dim L As Long
L = 100
GetUserName B, L
UserName = Left(B, L - 1)
End Function
-
Erstelle manuell einen Ordner „Archiv“ im gleichen Verzeichnis wie die Excel-Datei.
-
Teste das Makro, indem du Änderungen vornimmst und prüfe das Logfile im Archiv-Ordner.
Häufige Fehler und Lösungen
Alternative Methoden
Neben VBA gibt es auch die Möglichkeit, die „Änderungsverfolgung“ in Excel zu aktivieren, wenn du mit freigegebenen Arbeitsmappen arbeitest. Diese Funktion zeigt dir, wer was geändert hat, jedoch ist sie nicht so detailliert wie die VBA-Lösung.
- Aktiviere die Änderungsverfolgung über „Überprüfen“ > „Änderungen nachverfolgen“ > „Änderungen hervorheben“.
- Diese Methode ist jedoch nur in bestimmten Excel-Versionen verfügbar.
Praktische Beispiele
Hier sind einige Anwendungsfälle, in denen die Protokollierung von Änderungen nützlich sein kann:
- Teamarbeit: Wenn mehrere Benutzer an einem Arbeitsblatt arbeiten, kannst du genau sehen, wer welche Änderungen vorgenommen hat.
- Datenintegrität: Bei sensiblen Daten, wie Finanzen oder Kundeninformationen, hilft das Protokoll dabei, Änderungen nachzuvollziehen und Fehler zu identifizieren.
Verwende das genannte VBA-Makro, um die Änderungen zu protokollieren und die „Änderungshistorie“ zu führen.
Tipps für Profis
- Erweitere das Makro: Du kannst das Makro anpassen, um auch Formatänderungen oder Kommentare zu protokollieren, wenn du das möchtest.
- Zugriffsrechte verwalten: Stelle sicher, dass nur autorisierte Benutzer Zugriff auf die Logfiles haben, um Datenschutzprobleme zu vermeiden.
- Regelmäßige Backups: Erstelle regelmäßige Backups deiner Excel-Datei und der Logfiles, um Datenverlust zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich Änderungen in mehreren Arbeitsblättern protokollieren?
Du musst den VBA-Code in jedes Arbeitsblatt einfügen, das du überwachen möchtest.
2. Ist es möglich, die Änderungen in einer Access-Datenbank zu speichern?
Ja, du kannst den VBA-Code anpassen, um Änderungen in eine Access-Datenbank zu protokollieren, anstatt in eine Textdatei.
3. Wo finde ich weitere Informationen über Excel VBA und Protokollierung?
Es gibt viele kostenlose Online-Ressourcen und Foren, in denen du mehr über Excel VBA und das Protokollieren von Änderungen lernen kannst.