Vergleich von Tabellen, Anzeige der letzten Änderung je Zeile.

Anonym
2025-07-10T15:21:45+00:00

Hallo zusammen,

ich habe eine Excel-Datei mit mehreren Arbeitsblättern, die verschiedene Versionen der selben Tabelle darstellen (Index 01, Index 02, Index 03, ...).

Hier mal eine Beispieldatei zum Download: https://cloud.blk2.de/index.php/s/TeCyPmgLkwnNCyq

Es geht nun darum, die einzelnen Index-Stände miteinander zu vergleichen.

Damit Excel genau weiß, welche Zeilen es miteinander vergleichen soll, gibt es in Spalte "B" eine "ID" für jede Zeile. So ist es kein Problem, wenn mal eine neue Zeile dazu kommt oder wegfällt.

In der Beispieldatei ist bereits eine Bedingte Formatierung eingerichtet, die Abweichungen vom vorigen Index farbig darstellt. Das hab ich dank der tollen Hilfe von steve1da schon geschafft :) Das nur am Rande.

Nun zur Aufgabenstellung:

In der ersten Spalte würde ich gerne für jede Zeile anzeigen lassen, in welchem Arbeitsblatt die letzte Änderung passiert ist. Dort soll also der jeweilige Name des Arbeitsblatts stehen.

Will heißen:

  • Keine Änderung (dh. seit "Index 01" hat sich nichts geändert) -> in erster Spalte steht "-"
  • Änderung in Blatt "Index 2" -> in erster Spalte steht "Index 2"
  • Änderung in Blatt "Index 3" -> in erster Spalte steht "Index 3"

....

Im Grunde müsste die Formel in Spalte 1 zwei Zeilen vergleichen, und zwar anhand von gleichen Werten in der Spalte B "ID".

Für den Fall, dass in der Zeile alle Zellen identisch sind, müsste "-" in die Zelle geschrieben werden.

Für den Fall, dass in der Zeile mindestens eine Zelle zwischen "Index 1" und "Index 2" unterschiedlich ist, müsste dann "Index 2" (dh. der Name des aktuellen Tabellenblatts "Index 2") in die Zelle geschrieben werden.

Im Tabellenblatt 3 ("Index 3") müsste man die Formel dann noch erweitern um den Fall, dass es Unterschiede gibt zwischen Index 2 und Index 3.

Und so weiter.

Wie komme ich zum Ziel? Habt ihr Vorschläge?

Hoffe, meine Ausführungen waren verständlich genug!

Grüße und danke im Voraus :)

Stefan

Microsoft 365 und Office | Excel | Geschäftlich | MacOS

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

7 Antworten

Sortieren nach: Neueste
  1. Anonym
    2025-07-11T09:51:03+00:00

    Hi! Many thanks already!

    The code doesn't work with me, I suppose bc it is partially translated into German by the website. Is there a way to see the original text?

    This is how it's written here:

    Regarding the download problems with the file - maybe this direct link works better?

    https://cloud.blk2.de/index.php/s/TeCyPmgLkwnNCyq/download/Test_Vergleich%206.xlsx

    Best regards,

    Stefan

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2025-07-10T21:32:33+00:00

    Diese Antwort wurde automatisch übersetzt. Daher können grammatikalische Fehler oder seltsame Formulierungen vorkommen.

    Sehr geehrte S.. W..,

    Vielen Dank, dass Sie sich an die Microsoft-Supportcommunity gewandt haben. Wir helfen Ihnen gerne weiter.

    Was Ihre Anforderung betrifft, die letzte Änderung pro Zeile über mehrere Arbeitsblattversionen hinweg zu verfolgen: Es ist zwar technisch möglich, dies mit Formeln zu erreichen, aber die Logik wird recht komplex und schwer zu pflegen, insbesondere wenn die Anzahl der Blätter zunimmt. Aus diesem Grund empfehle ich dringend, stattdessen ein VBA-Makro zu verwenden. Es ist eine viel effizientere und skalierbarere Lösung für diese Art von Aufgabe.

    Leider war ich nicht in der Lage, die von Ihnen freigegebene Beispieldatei herunterzuladen, daher habe ich meinerseits eine vereinfachte Version erstellt, um die Makrologik zu testen. In meiner Umgebung hat es erfolgreich funktioniert, daher möchte ich Sie ermutigen, es auch auf Ihrer Seite auszuprobieren.

    So sieht meine Beispieldatei aus:

    1. Um das Makro auszuführen, drücken Sie ALT+F11, um den VBA-Editor zu öffnen.
    2. Fügen Sie > Modul ein.
    3. Fügen Sie das Makro unten ein.
    4. Drücken Sie F5, oder klicken Sie auf Ausführen, um das Makro auszuführen.

    Sub TrackLastChangeByRow()

    Dim wsIndex als Arbeitsblatt

    Dim wsAls Arbeitsblatt vergleichen

    Dim idBereich als Bereich, Zelle als Bereich

    Dim id als Variante

    Dim lastChange As String

    Dim i So Long, j As Long

    Schwache Übereinstimmung als boolescher Wert

    BasisBlatt als Arbeitsblatt dimmen

    CompareSheet als Arbeitsblatt dimmen

    Dim idRow so lange

    Dim colCount As Long

    Set baseSheet = Worksheets ("Index 01")

    colCount = baseSheet.Cells(1, Spalten.Anzahl). Ende(xlToLeft). Spalte

    Für jede Zelle In baseSheet.Range("B2:B" & baseSheet.Cells(Rows.Count, "B"). Ende (xlUp). Reihe)

    id = Zelle. Wert

    lastChange = "-"

    idRow = Zelle. Rudern

    Für i = 2 Bis Arbeitsblätter.Zählen

    Set compareSheet = Arbeitsblätter(i)

    Wenn compareSheet.Name wie "Index *" dann

    match = Wahr

    For j = 3 To colCount ' Beginnen Sie in Spalte C , um die ID und die Ergebnisspalte zu überspringen

    Wenn baseSheet.Cells(idRow, j). Wert <> compareSheet.Cells(idRow, j). Wert dann

    Treffer = Falsch

    Ende , wenn

    Weiter j

    Wenn nicht übereinstimmend, dann

    lastChange = compareSheet.Name

    Ende , wenn

    Ende , wenn

    Weiter i

    baseSheet.Cells(idRow, 1). Wert = lastChange

    Nächste Zelle

    MsgBox "Nachverfolgung der letzten Änderung abgeschlossen!"

    Ende Sub

    So sieht es aus, nachdem ich das Makro ausgeführt habe:

    HINWEIS: Stellen Sie sicher, dass Ihre Blätter einheitlich benannt sind (z. B. Index 01, Index 02 usw.) und dass die Struktur (Spalten) auf allen Blättern gleich ist.

    Wir hoffen, dass diese Informationen für Sie hilfreich sind. Wenn Sie weitere Bedenken haben oder weitere Hilfe benötigen, zögern Sie bitte nicht, sich an uns zu wenden, damit wir einen Blick darauf werfen und Sie weiterhin unterstützen können. 
    Alles Gute
    Viego An - MSFT | Spezialist für Microsoft-Community-Support.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare