KutoolsforOffice — Eine Lösung, fünf leistungsstarke Tools.Mehr erreichen mit weniger Aufwand.März-Aktion: 20 % Rabatt

Wie kann man den vorherigen Wert einer geänderten Zelle in Excel speichern oder sich merken?

AutorSiluvia Änderungsdatum

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.


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.

Ein Screenshot einer Excel-Tabelle, die die Zielspalte zum Speichern vorheriger Zellwerte zeigt

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:

Ein Screenshot, der die Option „Code anzeigen“ im Kontextmenü der Blattregisterkarte von Excel zeigt

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:

Ein Screenshot des Verweise-Dialogfelds mit ausgewählter Microsoft Scripting Runtime

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:

Ein Screenshot, der vorherige Zellwerte zeigt, die in einer anderen Spalte in Excel gespeichert wurden

Beispielausgabe für das Speichern vorheriger Zellwerte in Kommentaren:

Ein Screenshot, der vorherige Zellwerte zeigt, die als Kommentare in Excel gespeichert wurden

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

🤖KUTOOLS AI-Assistent: Revolutionieren Sie Datenanalyse basierend auf:Intelligente Ausführung   |  Code generieren|  benutzerdefinierte Formeln erstellen  |  Daten analysieren und Diagramme erstellen|  Erweiterte Funktionen aufrufen
Beliebte Funktionen:Suchen, hervorheben oder Doppelte markieren   |  Leere Zeilen löschen   |  Spalten kombinieren oder Zellen ohne Datenverlust   |   Runden ohne Formel...
Erweiterte SVERWEIS:VLookup mit mehreren Kriterien  |  VLookup mit mehreren Werten  |   VLookup über mehrere Arbeitsblätter hinweg   |   Fuzzy Match....
Erweiterte Dropdown-Liste:Schnell eine Dropdown-Liste erstellen   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl-Dropdown-Liste....
Spalten-Manager:Eine bestimmte Anzahl von Spalten hinzufügen|Spalten verschieben|Sichtbarkeitsstatus ausgeblendeter Spalten umschalten|Bereiche & Spalten vergleichen...
Hervorgehobene Funktionen:Gitterfokus   |  Entwurf   |Erweiterte Formelleiste   | Arbeitsmappen- & Blatt-Manager   |  Ressourcenbibliothek(AutoText)|  Datumsauswahl   |  Arbeitsblätter konsolidieren  |  Verschlüsseln/Zellen entschlüsseln   | E-Mails per Liste versenden   |  Super Filter   |   Spezialfilter(Zellen mit fettgedruckter Schrift filtern/kursiv/durchgestrichen...) ...
Top-15-Toolsets:12-Text-Tools(Text hinzufügen,Bestimmte Zeichen löschen, ...)|   50+-Diagramm-Typen(Gantt-Diagramm, ...)|   40+ Praktische Formeln(Alter basierend auf dem Geburtstag berechnen, ...)|   19-Einfüge-Tools(QR-Code einfügen,Bild aus Pfad einfügen, ...)|   12-Konvertierungs-Tools(In Wörter umwandeln,Wechselkursumrechnung, ...)|   7-Vereinigen/Aufteilen-Tools(Erweiterte Zeilen zusammenführen,Zellen aufteilen, ...)|... und mehr
Verwenden Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und 40+ weitere Sprachen!

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.

ExcelWordOutlookTabsPowerPoint
  • 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