Änderungen im Excel-Dokument erkennen und Sicherheitskopien erstellen
Schritt-für-Schritt-Anleitung
Um zu überprüfen, ob sich der Inhalt einer Excel-Datei geändert hat, kannst Du VBA (Visual Basic for Applications) verwenden. Folge dieser Schritt-für-Schritt-Anleitung:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke im Menü auf
Einfügen
> Modul
.
-
Füge den folgenden Code ein:
Option Explicit
'Kommt in ein Modul
Public geaendert As Boolean
-
Füge den Arbeitsmappen-Code hinzu:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
geaendert = True
End Sub
-
Speichere die Arbeitsmappe als Makro-fähige Datei:
- Wähle
Datei
> Speichern unter
und wähle den Dateityp Excel-Arbeitsmappe mit Makros
.
Jetzt wird beim Schließen der Datei überprüft, ob Änderungen vorgenommen wurden.
Häufige Fehler und Lösungen
-
Der Code reagiert nicht auf alle Änderungen:
-
Die Sicherheitskopie wird immer erstellt:
- Überprüfe, ob der
geaendert
-Flag korrekt gesetzt wird. Wenn er nicht auf True
gesetzt wird, wird die Sicherheitskopie immer erstellt.
Alternative Methoden
Eine alternative Methode, um Änderungen zu überwachen, ist die Verwendung von Excel-Datenüberprüfung oder -Formeln. In diesem Fall kannst Du folgende Schritte durchführen:
-
Nutze die Funktion =ISTLEER()
:
- Überwache spezifische Zellen auf Änderungen, indem Du eine Formel erstellst, die prüft, ob eine Zelle leer ist oder nicht.
-
Verwende die Überwachungsfunktion in Excel:
- Excel bietet auch Funktionen zur Überwachung von Änderungen in der Funktionen "Änderungen nachverfolgen". Du kannst dies unter
Überprüfen
> Änderungen nachverfolgen
aktivieren.
Praktische Beispiele
Angenommen, Du möchtest eine Sicherheitskopie der Datei erstellen, wenn der Benutzer Änderungen an den Daten vorgenommen hat:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If geaendert Then
ThisWorkbook.SaveCopyAs "Pfad\zur\Sicherheitskopie_" & Format(Now, "YYYYMMDD_HHMMSS") & ".xlsm"
End If
geaendert = False
End Sub
Dieses Beispiel erstellt eine Kopie der Arbeitsmappe mit einem Zeitstempel, was die Verwaltung der Sicherheitskopien erleichtert.
Tipps für Profis
- Verwende
Application.OnUndo
: Du kannst eine Rückgängig-Funktion implementieren, um sicherzustellen, dass Änderungen bei Bedarf rückgängig gemacht werden können.
- Erstelle eine Benutzeroberfläche: Wenn Du regelmäßig Sicherungskopien erstellen möchtest, erwäge, eine Schaltfläche zu erstellen, die den Backup-Code ausführt.
- Teste den Code: Stelle sicher, dass Du den Code in einer Testumgebung ausprobierst, bevor Du ihn in einem produktiven Dokument verwendest.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass der Code auf alle Blätter reagiert?
Der Code für Workbook_SheetChange
sollte alle Änderungen an den Blättern erfassen. Achte darauf, diesen im richtigen Bereich einzufügen.
2. Funktioniert dieser Code in Excel 2016 und späteren Versionen?
Ja, der VBA-Code sollte in Excel 2016 und späteren Versionen ohne Probleme funktionieren. Achte darauf, dass die Makros in den Excel-Einstellungen aktiviert sind.