Excel: 2 Tabellen über einen Parameter vergleichen

Hallo zusammen,

ich habe folgendes Problem und hoffe ihr könnt mir weiterhelfen. Wir senden unseren Kunden immer Excel Dateien die als Übersicht zum Angebotsbestand dienen sollen.
Das wird quasi wöchentlich gemacht und die neueste Version hat immer mehr Zeilen als die alte Version. Jetzt kommt es aber dazu, dass nachträglich an manchen Angeboten Änderungen durchgeführt werden, diese dann in der neuen Excel Liste abgebildet sind, in der alten aber natürlich nicht.

Wie kann ich jetzt am besten zwei Excel Blätter (Version A und Version B) so miteinander vergleichen, dass mir die Zeilen in denen Änderungen durchgeführt worden sind ausgespielt werden. Als konstanten Wert hätte ich ja die Angebotsnr. die in keinem Fall verändern werden würde, sondern nur andere Spalten wie etwa der Lieferbeginn und andere Zahlen.

Im Prinzip sollen beide Dateien (derer Aufbau immer gleich ist, also Spalten) auf Basis der Angebotsnr. verglichen werden und mir alle Zeilen herausgefiltert werden die in irgendeiner Spalte einen neuen/anderen Wert aufweisen. Gibt es dafür ein Makro?

Ich bin leider schlichtweg zu dumm um das in Excel selber zu machen und würde mich über Eure Hilfe sehr freuen.

LG und Vielen Dank schon mal!

Hi,

veruchs doch mal mit der Funktion SVERWEIS (oder VLOOKUP in VBA).
Die sucht in einer Matrix (Originaldatei) nach der Angebotsnr. und gibt den Wert aus einer nachfolgenden Spalte (z.B. Preis) zurück. Den kannst du nun mit dem Wert aus deiner Kundendatei vergleichen und wenn ein Unterschied besteht einen entsprechenden Hinweis geben oder eine Aktion auslösen. Diese Funktion in jede Zeile via VBA einzufügen überlasse ich dir. Wenn Du mir deine Emailadresse schickst kann ich Dir ein Beispiel schicken.

Grüße

Thomas

Hallo Florian,
ich würde mir mit ganz einfachen Mitteln helfen und einen Filter benutzen. Dazu würde ich die Datensätze aus der neuen Version unter die Datensätze der alten Version in das alte Tabellenblatt direkt unter die alten Datensätze kopieren.
Beschrieben ist unter folgendem Link ein ähnlicher Fall:
http://www.pctipp.ch/praxishilfe/kummerkasten/office…:
Viel Erfolg
Maria

Hallo zusammen,

ich habe folgendes Problem und hoffe ihr könnt mir
weiterhelfen. Wir senden unseren Kunden immer Excel Dateien
die als Übersicht zum Angebotsbestand dienen sollen.

[…]

Im Prinzip sollen beide Dateien (derer Aufbau immer gleich
ist, also Spalten) auf Basis der Angebotsnr. verglichen werden
und mir alle Zeilen herausgefiltert werden die in irgendeiner
Spalte einen neuen/anderen Wert aufweisen. Gibt es dafür ein
Makro?

Hi Florian,
mit einem Makro lässt sich prinzipiell alles lösen, nur klingt das aufwändiger, als es meine momentane Zeit zulässt. Auch habe ich auf den ersten Blick keine vernünftige Idee für einen Ansatz. Sorry.
Tobias

Hallo Florian,

ich kann Dir leider nicht helfen.

Grüße

Christin

mit der Funktionskombination =wenn(und(Zählenwenn…
kann jede Woche mit der Vorwoche verglichen werden.
In Spalte A steht die Angebotsnummer, in Spalte D steht die Versionsnummer des Angebotes.

In der zweiten Woche lautet die Formel für die erste Zeile (Zeile 2) wie folgt:

=WENN(UND(ZÄHLENWENN(Tab1!$A$2:blush:A$100;A2)>0;Tab1!$D$2:blush:D$100;Tab1!D2Tab2!D2);„wurde geändert“;„entspricht Vorwoche“)

tab1 = erste Woche
tab2 = zweite Woche

Viel Spaß dabei
der Graubarth

Hallo Florian,
versuche es damit :
Sub kopieren_mitVergleich()
Dim LoI As Long
Dim LoJ As Long
For LoI = 1 To Worksheets(„Tabelle1“).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For LoJ = 1 To Worksheets(„Tabelle2“).UsedRange.SpecialCells(xlCellTypeLastCell).Row
With Worksheets(„Tabelle2“)
If .Cells(LoJ, 1) = Worksheets(„Tabelle1“).Cells(LoI, 1) Then
Worksheets(„Tabelle1“).Rows(LoI).Copy Destination:=.Rows(LoJ)
End If
End With
Next LoJ
Next LoI
End Sub

Der Vergleich findet hier aber nur in Spalte A statt. Falls es mehrere Spalten sind, musst du den Code entsprechend anpassen.
ODER :
Sub vergleichen()
Dim t1, t2, t3 As Worksheet
Set t1 = Sheets(„Tabelle1“)
Set t2 = Sheets(„Tabelle2“)
Set t3 = Sheets(„Tabelle3“)
Dim r1, r2 As Range
Set r1 = t1.UsedRange
Set r2 = t2.UsedRange
e = 1
For Each z In r1
If z.Value r2.Cells(z.Row, z.Column).Value Then
t3.Cells(e, 1).Value = "Abweichung in Zeile " _
& z.Row & " der Spalte " & z.Column & " " _
& "(Tabelle1 - " & z.Value & " - / Tabelle2 - " _
& r2.Cells(z.Row, z.Column).Value & „-)“
e = e + 1
End If
Next
End Sub

Die Tabellen 1 und 2 sollten die beiden Vergleichslisten enthalten,
Tabelle 3 ist zur Ausgabe der Ergebnisse. Die Tabellen sollten
auch Tabelle1 etc. benannt sein.

Gruß
Dieter

Hallo Florian,

wenn beide Zellen von Tabelle1 und Tabelle2 gleich sind, dann kommt beim Vergleich in Tabelle3:
=Tabelle1!A1=Tabelle2!A1 WAHR heraus.

Sind beide Zellen unterschiedlich, kommt bei dem Vergleich in Tabelle3:
=Tabelle1!A1=Tabelle2!A1 FALSCH heraus.
Das ist schnell eingetippt und runter bzw. rüberkopiert. Dazu brauchst du kein Makro.

Wir haben das in unserer Abt. früher auch immer so gemacht.

Gruß Distel