PDA

Vollständige Version anzeigen : Automatischer Tabellenvergleich


Ares_1987
26.02.2008, 11:30
Hallo zusammen,

ich benutze Office 2003.

Zu meinem Problem:
Ich soll zwei Tabellen miteinander vergleichen und etwaige Unstimmigkeiten kenntlich machen.
Zum besseren Verständnis habe ich mal eine kleine Test-Datei angehängt, in der die zwei Tabellen in unterschiedlichen Tabellenblättern abgebildet sind.

Die "Basis Tabelle" ist meine Ausgangstabelle. Sie besteht aus den Spalten Kunden-ID, FirmaName1, FirmaName2, FirmaName3, Kurzname, Straße, PLZ und Ort. Die "Check Tabelle" besteht aus den Spalten Kunden-ID, FirmaName1, FirmaName2, FirmaName3, Straße, PLZ und Ort. D.h. die Spalte Kurzname aus der Basis Tabelle ist nicht relevant.

Nun sollen die beiden Tabellen miteinander verlichen werden. Hierbei denke ich ist es sinnvoll sich an den Kunden-IDs zu orientieren. Das Problem hierbei ist allerdings, dass bei der Basis Tabelle die ID 6-stellig ist weil immer eine 4 vorangestellt ist. Sonst stimmen die IDs immer überein.

Nun soll am besten auf einem neuen Tabellenblatt die Basistabelle um die 2 Spalten "Abweichungen" und "Details" ergänzt werden. Und zwar soll folgender Inhalt drin stehen...

Abweichungen:
- mit einer 1, wenn der Datensatz aus der Check-Tabelle mit der Basis Tabelle übereinstimmt
- mit einem N, wenn der Datensatz in der Basis Tabelle nicht vorhanden ist
- mit einem F, wenn mehrere Abweichungen zutreffen (im Firmennamen, Strasse usw.)

Details:
- im Fall, wenn ein F in Abweichungen steht soll nochmal in "Details" aufgelistet werden wo genau die Unstimmigkeiten sind
- mit einem F1, wenn der FirmaName1 zwischen der Basis Tabelle und der Check Tabelle abweicht
- mit einem F2, wenn der FirmaName2 zwischen der Basis Tabelle und der Check Tabelle abweicht
- mit einem F3, wenn der FirmaName3 zwischen der Basis Tabelle und der Check Tabelle abweicht
- mit einem FP, wenn die PLZ zwischen der Basis Tabelle und der Check Tabelle abweicht
- mit einem FO, wenn der Ort zwischen der Basis Tabelle und der Check Tabelle abweicht
- mit einem FS, wenn die Straße/Hausnr zwischen der Basis Tabelle und der Check Tabelle abweicht


Ich hoffe ich konnte mein Problem verständlich darstellen.
Leider habe ich keinen richtigen Ansatz, und weiß nicht wie ich das vba technisch bewerkstelligen soll. Ich wäre euch sehr verbunden, wenn ihr mir weiterhelfen könntet!
Ich hoffe ich konnte mein Problem verständlich darstellen.

Viele grüße
Ares

jinx
04.05.2008, 09:34
<font size="2" face="Century Gothic">Moin, Ares,

in der "Check Tabelle" eine Schleife über alle vorhandenen Datensätze laufen lassen und den Wert aus Spalte A mit einer vorangestellten 4 als Zahl in "Basis Tabelle" suchen lassen (CLng("4" & Sheets("Check Tabelle").Cells(2, 1).Value) für die Zelle A2 als Beispiel), um die Zeilenangabe dort und für die "Basis Tabelle Neu" zu erhalten bzw, zu wissen, dass dieser Datensatz in Tabelle "Basis Tabelle Neu" eingefügt werden muss.

Da die Auswertungen in zwei Schritten ausgegeben werden soll, müssen die Vergleiche Eintrag für Eintrag für jeden Datensatz vorgenommen werden, bis eine Nichtübereinstimmung auftritt. Aufgrund der erreichten Spalte kann dann der Wert in die zweite Spalte geschrieben werden, während die erste bereits vorher im Fehlerfall gefüllt werden kann. Sind die Datensätze gleich, kann diese Eintragung logischerweise erst nach abgeschlossenem Vergleich durchgeführt werden.

Da die Spalten für den Vergleich ab Spalte E aus "Check Tabelle" unterschiedlich sind, sollte beim Zähler für die "Basis Tabelle" eine eigene Variable verwendet wird, die ab dem Wert 5 um 1 im Vergleich zum normalen Zähler erhöht wird...</font>