Clever-Excel-Forum

Normale Version: Daten aus 2. Exceldatei vergleichen und aktualisieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin schon seit einiger Zeit auf der Suche und finde aber irgendwie nicht die richtige Antwort auf meine Problemstellung.
Vermutlich suche ich nach den falschen Suchbegriffen um das richtige für mein Problem zu finden.
Deswegen habe ich mich nun hier bei euch angemeldet und hoffe ihr könnt mir helfen.

Ich habe eine eigene Exceldatei "Meine Auswertung.xlsx" in welcher ich Daten pflege. Nun kommt in unregelmäßigen Abständen eine andere Exceldatei mit aktualisierten Werten / Daten und auch neuen Daten. Diese Datei nennt sich hier im Beispiel "UpdatenDatenSatz1.xlsx". Diese Datei heißt aber jedes Mal anders. 
Diese neuen Daten aus "UpdatenDatenSatz1.xlsx" sollen in meiner Exceldatei "Meine Auswertung.xlsx" aktualisiert/übernommen werden und wenn möglich anschließend die neuen oder geänderten Werte sollen farblich angezeigt werden.
Zeitgleich kann es aber auch sein, dass in der neuen Exceldatei mit den neuen Werten auch eine Zeile von den "alten" Werten nicht mehr vorhanden ist, dann soll natürlich diese Zeile aber in meiner Auswertung weiterhin vorhanden bleiben.

Als Ablauf, habe ich mir wie folgt überlegt :
- "Meine Auswertung.xlsx" öffnen
- Auf ein Knopf (vermutlich ein Makro) klicken.
- Datei auswählen (hier im Beispiel "UpdatenDatenSatz1.xlsx")
- Excel sucht automatisch nach den neuen Daten
- neue/geänderte Daten werden übernommen/aktualisiert
- Die neuen Daten werden farblich markiert, damit man sehen kann welche Daten neu sind.
- ein zweiter Knopf in dem man die neuen/markierten Daten wieder "entmarkieren" kann.

Die Datei "UpdatenDatenSatz1.xlsx" möchte ich dann aber löschen können irgendwann, aber die Daten sollen in "Meine Auswertung.xlsx" dann vorhanden bleiben.

Leider kenne ich mich überhaupt nicht aus mit Makros und hoffe ihr könnt mir hier weiterhelfen?
Bisher habe ich immer alle neuen Daten per Hand übernommen, aber das wird immer mehr und somit hoffe ich darauf, dass es eine einfachere Lösung gibt!?

Im Anhang, habe ich die beiden Beispieldateien angehängt. In der "UpdatenDatenSatz1.xlsx" habe ich die Zellen markiert, welche neu sind, damit ihr besser die Änderungen auf Anhieb seht.

Könnt ihr mir bitte helfen?


Grüße
Excelnewbi
Hallo Newbi,

das Ganze ist nicht einfach. Und wenn es kein eindeutiges Kennzeichen für jeden Datensatz gibt, gar unmöglich.

Annahme:
Du bist in einer großen Firma mit Hunderten Monitoren, Notebooks, etc.
Wie soll Excel feststellen, um welchen Notebook, Monitor es sich bei einem Update-Datensatz handelt??

Du bräuchtest jeweils eindeutige ID-Nrn, wie Geräte-Nr, Artikel_Nr, etc. 
Dann könnte man darüber nochmal nachdenken.

Gruß Sigi
Hallo Sigi,

vielen Dank für deine Antwort.
Ja du hast natürlich Recht, dass es etwas geben muss, was eindeutig ist.
Ich habe in den Daten nun noch die Personalnummer eingefügt. Diese ist dann immer eindeutig jeweils, wobei auch der Name eigentlich eindeutig ist.
Wobei es ja auch möglich sein kann, dass die Person noch einmal dazu kommt, aber mit einem anderen Gegenstand und neuen Werten.

Im Anhang sind die aktualisierten Exceldateien.

Ich hoffe du/ihr könnt mir weiterhelfen!?!?

Gruß
Excelnewbi
Hallo,

Excel ist keine Datenbank, kann aber z.B. mit VBA die Funktionalitäten nachbauen.

Also die Frage, ob VBA zulässig ist und jemand genügend Grundkenntnisse um so ein System zu betreuen.

In der Beispieldatei bleibt die Reihenfolge gleich, wenn dies immer so wäre ginge es einfacher.

mfg

Ergänzung:

Vergleich bestehender Datensätze (als Beispiel)

Code:
Sub update()
Dim WS As Worksheet
Dim Up As Worksheet: Set Up = Workbooks("UpdatenDatenSatz1.xlsx").Sheets(1)
Dim rng As Range

Set WS = ActiveSheet
For i = 5 To WS.Cells(Rows.Count, 3).End(xlUp).Row
    Set rng = Up.Columns(3).Find(WS.Cells(i, 3), , xlValues, xlWhole)
    If WS.Cells(i, 5) <> rng.Offset(0, 3) Then Cells(i, 5).Interior.Color = vbYellow
    If WS.Cells(i, 6) <> rng.Offset(0, 4) Then Cells(i, 6).Interior.Color = vbYellow
    If WS.Cells(i, 7) <> rng.Offset(0, 5) Then Cells(i, 7).Interior.Color = vbYellow
    
Next i

End Sub