Wie kann man den vorherigen Wert einer geänderten Zelle in Excel speichern oder sich merken?
Wenn Sie eine Zelle in Excel bearbeiten, wird der vorherige Wert sofort überschrieben und ist nicht mehr sichtbar – es sei denn, Sie führen einen Rückgängig-Befehl aus. Sollten Sie diesen früheren Wert jedoch beibehalten müssen, etwa zum Vergleich, zur Prüfung oder zum Zurücksetzen, stehen Ihnen zwei praktische Optionen zur Verfügung: Entweder erfassen Sie den alten Wert automatisch mithilfe einer kurzen VBA-Routine, die ihn vor jeder Änderung in eine Hilfsspalte schreibt, oder Sie nutzen die Microsoft 365-Tools „Änderungen anzeigen“ und „Versionsverlauf“, sofern Ihre Datei in OneDrive oder SharePoint gespeichert ist. Dieses Tutorial stellt beide Ansätze vor, damit Sie die Methode wählen können, die am besten zu Ihrem Arbeitsablauf und Ihren Governance-Anforderungen passt.
➤ Microsoft 365 – Vorherige und aktualisierte Zellwerte mit „Änderungen anzeigen“ und „Versionsverlauf“ prüfen
Vorherigen Zellwert mithilfe von VBA-Code in Excel speichern
Angenommen, Sie haben eine Tabelle wie in der folgenden Abbildung dargestellt. Sobald eine beliebige Zelle in Spalte C bearbeitet wird, möchten Sie deren vorherigen Wert entweder in der entsprechenden Zelle von Spalte G erfassen oder automatisch als Kommentar hinzufügen – ideal für spätere Referenz und Überprüfung. Dieser Ansatz ist besonders wertvoll, wenn Sie ein fortlaufendes Protokoll führen oder während der laufenden Dateneingabe bzw. Qualitätsprüfungen schnell auf frühere Werte zugreifen möchten.

Hauptszenario: In Arbeitsblättern, in denen Sie Änderungen häufig prüfen oder abgleichen – etwa bei Inventuren, Protokollen oder der Finanzverfolgung – spart Ihnen die Sichtbarkeit früherer Werte Zeit und minimiert versehentlichen Datenverlust.
Öffnen Sie zunächst das Arbeitsblatt, in dem Sie frühere Werte erfassen möchten, und führen Sie anschließend die folgenden Schritte aus:
1. Klicken Sie mit der rechten Maustaste auf die Blattregisterkarte und wählen Sie im Kontextmenü „Code anzeigen“, um den Visual Basic for Applications (VBA)-Editor zu öffnen. Siehe Abbildung:

2. Fügen Sie im Fenster „Microsoft Visual Basic for Applications“ den folgenden VBA-Code in das Codefenster ein. Dieses Makro speichert den vorherigen Wert der Zellen in der Zielspalte in einer separaten Spalte.
Bevor Sie dieses Skript ausführen, passen Sie die Spaltenreferenzen im Code entsprechend Ihrem Layout an: In diesen Beispielen steht „C:C“ für die Spalte, deren Änderungen nachverfolgt werden sollen, und die Zahl „7“ bezieht sich auf Spalte G, in der die vorherigen Werte gespeichert werden.
VBA-Code: Vorherigen Zellwert in eine andere Spalte speichern
Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xCell As Range
Dim xDCell As Range
Dim xHeader As String
Dim xCommText As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Previous value :"
x = xDic.Keys
For I = 0 To UBound(xDic.Keys)
Set xCell = Range(xDic.Keys(I))
Set xDCell = Cells(xCell.Row, 7)
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I, J As Long
Dim xRgArea As Range
On Error GoTo Label1
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set xDependRg = Target.Dependents
If xDependRg Is Nothing Then GoTo Label1
If Not xDependRg Is Nothing Then
Set xDependRg = Intersect(xDependRg, Range("C:C"))
End If
Label1:
Set xRg = Intersect(Target, Range("C:C"))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
Set xChangeRg = xRg
Else
Application.EnableEvents = True
Exit Sub
End If
xDic.RemoveAll
For I = 1 To xChangeRg.Areas.Count
Set xRgArea = xChangeRg.Areas(I)
For J = 1 To xRgArea.Count
xDic.Add xRgArea(J).Address, xRgArea(J).Formula
Next
Next
Set xChangeRg = Nothing
Set xRg = Nothing
Set xDependRg = Nothing
Application.EnableEvents = True
End Sub Für Fälle, in denen der vorherige Wert lieber als Kommentar gespeichert werden soll – nützlich zur schnellen Anzeige und Kommentierung – erledigt der folgende VBA-Code dies automatisch, sobald eine Zelle in der Zielspalte geändert wird:
VBA-Code: Vorherigen Zellwert im Kommentar speichern
Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xCell As Range
Dim xHeader As String
Dim xCommText As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Previous value :"
For I = 0 To UBound(xDic.Keys)
Set xCell = Range(xDic.Keys(I))
If Not xCell.Comment Is Nothing Then xCell.Comment.Delete
With xCell
.AddComment
.Comment.Visible = False
.Comment.Text xHeader & vbCrLf & xDic.Items(I)
End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I, J As Long
Dim xRgArea As Range
On Error GoTo Label1
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set xDependRg = Target.Dependents
If xDependRg Is Nothing Then GoTo Label1
If Not xDependRg Is Nothing Then
Set xDependRg = Intersect(xDependRg, Range("C:C"))
End If
Label1:
Set xRg = Intersect(Target, Range("C:C"))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
Set xChangeRg = xRg
Else
Application.EnableEvents = True
Exit Sub
End If
xDic.RemoveAll
For I = 1 To xChangeRg.Areas.Count
Set xRgArea = xChangeRg.Areas(I)
For J = 1 To xRgArea.Count
xDic.Add xRgArea(J).Address, xRgArea(J).Text
Next
Next
Set xChangeRg = Nothing
Set xRg = Nothing
Set xDependRg = Nothing
Application.EnableEvents = True
End Sub Hinweise zu Parametern:
- Die Zahl 7 in
Cells(xCell.Row, 7)bezieht sich auf Spalte G. Ändern Sie diesen Wert, wenn Sie den vorherigen Wert in einer anderen Spalte speichern möchten. Range("C:C")legt fest, für welche Spalte Änderungen nachverfolgt werden. Passen Sie dies bei Bedarf an – zum Beispiel auf „D:D“ für Spalte D.
3. Um die Wörterbuchunterstützung für das Skript zu aktivieren, wählen Sie im VBA-Editor „Extras“ > „Verweise...“. Aktivieren Sie im Dialogfeld „Verweise – VBAProject“ die Option „Microsoft Scripting Runtime“ und klicken Sie auf „OK“, wie in der Abbildung dargestellt:

4. Drücken Sie „Alt“ + „Q“, um den VBA-Editor zu schließen und zu Ihrem Arbeitsblatt zurückzukehren.
Ab diesem Zeitpunkt kopiert Excel automatisch den vorherigen Wert einer geänderten Zelle aus Spalte C entweder in Spalte G oder fügt ihn dem Zellkommentar hinzu – so behalten Sie alle Änderungen stets im Blick und können sie mühelos nachvollziehen und validieren. Historische Daten bleiben dadurch jederzeit für Überprüfungen, Prüfungen oder Fehlerkorrekturen griffbereit.
Beispielausgabe für das Speichern vorheriger Zellwerte in anderen Zellen:

Beispielausgabe für das Speichern vorheriger Zellwerte in Kommentaren:

Tipps und Fehlerbehebung:
- Sollten die VBA-Makros nicht wie erwartet funktionieren, überprüfen Sie Ihre Makrosicherheitseinstellungen unter „Datei“ > „Optionen“ > „Vertrauensstellungscenter“ > „Makroeinstellungen“ und wählen Sie „Alle Makros aktivieren“.
- Überprüfen Sie Ihre Spaltenreferenzen, falls Werte nicht an der vorgesehenen Stelle protokolliert werden.
- Sollten Fehler weiterhin auftreten, stellen Sie sicher, dass die Bibliothek „Microsoft Scripting Runtime“ wie oben beschrieben korrekt aktiviert ist.
Microsoft 365 – Vorherige und aktualisierte Zellwerte mit Änderungen anzeigenund Versionsverlauf
In Microsoft 365 können Sie Bearbeitungen – also wer was wann geändert hat, inklusive der Werte vorher und nachher – prüfen, ohne auf die Legacy-Funktion „Änderungen nachverfolgen“ zurückgreifen zu müssen. Nutzen Sie Änderungen anzeigen für zellbasierte Details und Versionsverlauf für vollständige Dateischnappschüsse und Wiederherstellungen.
Voraussetzungen
- Arbeitsmappe gespeichert in OneDrive oder SharePoint.
- Mit einem Microsoft 365-Konto angemeldet; AutoSave aktiviert Ein.
- Modernes Format ().xlsx); keine Verwendung der Legacy-Funktion Gemeinsam genutzte Arbeitsmappe (Legacy).
Änderungen anzeigen (zellbasierte Prüfung)
1. Öffnen Sie die in der Cloud gespeicherte Arbeitsmappe und navigieren Sie zu Überprüfen ▸ Änderungen anzeigen, um den Bereich zu öffnen.
2. (Optional) Wählen Sie vorab ein Blatt oder einen Bereich aus, um die Ergebnisse einzuschränken.
3. Durchsuchen Sie die Einträge, um Bearbeiter, Zeitstempel und alt → neu-Werte anzuzeigen; klicken Sie auf einen Eintrag, um direkt zur entsprechenden Zelle zu springen.
Versionsverlauf (vergleichen und wiederherstellen)
1. Navigieren Sie zu Datei ▸ Info ▸ Versionsverlauf.
2. Öffnen Sie eine frühere Version zum Vergleich, kopieren Sie Zellen daraus oder klicken Sie auf Wiederherstellen, um die gesamte Datei zurückzusetzen.
- „Änderungen anzeigen“ ist ausgegraut?Speichern Sie die Datei in OneDrive oder SharePoint, aktivieren Sie AutoSave, und konvertieren Sie das Dokument. Wenn Ihre Windows-Version 10 oder höher und Ihre Excel-Version neuer als 2013 ist, aktivieren Sie diese Option für optimale Ergebnisse ()Datei ▸ Info ▸ Konvertieren) und stellen Sie sicher, dass Gemeinsam genutzte Arbeitsmappe (Legacy) deaktiviert ist. Verwenden Sie gegebenenfalls Excel für das Web, falls die Funktion in der Desktopversion weiterhin nicht verfügbar sein sollte.
- Sicherheit/Sperren: Der Schutz einer Arbeitsmappe oder eines Arbeitsblatts, Verschlüsselung oder IRM können die Funktion „Änderungen anzeigen“ deaktivieren.
- Lokale Dateien: Für rein lokale Dateien wird kein vollständiger Verlauf gespeichert. Nutzen Sie für optimale Ergebnisqualität die Versionsverlaufsfunktion in der Cloud.
- Möchten Sie Werte direkt in den Zellen protokollieren?„Änderungen anzeigen“ und „Versionsverlauf“ sind Prüfungswerkzeuge; um bei jeder Bearbeitung den „vorherigen Wert“ automatisch in eine Hilfsspalte einzutragen, verwenden Sie ein kleines
Worksheet_Change-VBA-Protokollierungsmodul.
Vorteile
- Automatische Prüfung von Wer und Wann mit Vorher-/Nachher-Werten – ganz ohne Makros.
- Plattformübergreifend nutzbar (Windows, Mac, Web), wenn in OneDrive oder SharePoint gespeichert.
Nachteile
- Erfordert Cloud-Speicher und AutoSave; eingeschränkte Details bei einigen temporären Bearbeitungen.
- Trägt keine vorherigen Werte in Zellen ein – verwenden Sie VBA, falls dies für Ihre Geschäftslogik erforderlich ist.
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor.Kutools für Excel bietet über 300 erweiterte Funktionen zur Steigerung der Produktivität und Zeit sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am dringendsten benötigen...
Office Tab bringt eine tabbasierte Oberfläche in Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie tabbasiertes Bearbeiten und Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters – statt jedes in einem separaten Fenster zu öffnen.
- Steigert Ihre Produktivität um 50 % und erspart Ihnen täglich Hunderte von Mausklicks!
Alle Kutools-Add-Ins – ein Installationsprogramm
Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook und PowerPoint sowie Office Tab Pro – ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.
- Alles-in-einem-Paket— Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro
- Ein Installationsprogramm, eine Lizenz— innerhalb weniger Minuten eingerichtet (MSI-fähig)
- Funktioniert besser zusammen— optimierte Produktivität über alle Office-Anwendungen hinweg
- 30-tägige Vollversion zum Testen— keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis— sparen Sie im Vergleich zum Kauf einzelner Add-Ins