Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listenvergleich Makro

Listenvergleich Makro
24.04.2008 21:12:00
Gonzer
ich habe folgendes Problem, ich moechte gerne 2 Listen miteinander Vergleichen und in eine Liste zusammenfassen mit folgenden Bedingungen:
- wenn die Zeile aus der neuen Liste nicht in der alten enthalten ist, soll sie hinzufugefuegt werden und zusaetzlich noch das Importdatum ausgefuellt werden und in der Zeile ZZ (siehe Datei im Anhang) eine n stehen
- wenn die Zeile in der Liste bereits enthalten ist und unveraendert ist soll lediglich die Zeile aufgefuehrt werden
- ist die Zeile in der Liste enthalten und veraendert (in meinem Beispiel das Datum in date) soll das alte Datum in date-old verschoben werden und das neue in date uebernommen werden. Zusaetzlich soll in Spalte zz ein x stehen
https://www.herber.de/bbs/user/51843.xls
ich hoffe mich verstaendlich ausgedrueckt zu haben, habe schon einiges probiert aber komme nicht weiter...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenvergleich Makro
24.04.2008 21:29:20
Erich
Hallo Vorname(?),
was soll mit Zeilen passieren, die in "alt", aber nicht in "neu" vorkommen? Sollen die nicht in "Vergleich"?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Listenvergleich Makro
24.04.2008 21:33:00
Gonzer
Hallo Erich,
Zeilen die in alt vorhanden sind und in neu nicht mehr sollen auch in Verlgleich uebernommen werden.
Danke fuer die Nachfrage die Moeglichkeit hatte ich vergessen mit aufzunehmen.
Gruss,
Marc

AW: Listenvergleich Makro
24.04.2008 21:53:00
Erich
Hi Marc,
probier mal:

Sub VglSpez()
Dim wsAlt As Worksheet, wsNeu As Worksheet, zA As Long, zN As Long, zV As Long
Dim tmp
Set wsAlt = Sheets("alt")
Set wsNeu = Sheets("neu")
Sheets("Vergleich").Select
Cells.ClearContents
zV = 1
Sheets("alt").Rows(1).Copy Cells(1, 1)
For zN = 2 To wsNeu.Cells(Rows.Count, 1).End(xlUp).Row
zV = zV + 1
wsNeu.Rows(zN).Copy Cells(zV, 1)
tmp = Application.Match(wsNeu.Cells(zN, 1), wsAlt.Columns(1), 0)
If IsError(tmp) Then
Cells(zV, 2) = Date
Cells(zV, 3) = "n"
Else
zA = CLng(tmp)
If wsNeu.Cells(zN, 4)  wsAlt.Cells(zN, 4) Then
Cells(zV, 3) = "x"
Cells(zV, 5) = wsAlt.Cells(zN, 4)
End If
End If
Next zN
For zA = 2 To wsAlt.Cells(Rows.Count, 1).End(xlUp).Row
tmp = Application.Match(wsAlt.Cells(zA, 1), Columns(1), 0)
If IsError(tmp) Then
zV = zV + 1
wsAlt.Rows(zA).Copy Cells(zV, 1)
Cells(zV, 3) = "alt"
End If
Next zA
End Sub

Noch nicht erledigt sind einige Formatierungen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Listenvergleich Makro
24.04.2008 22:01:00
Gonzer
Hallo Erich,
Vielen Dank! Funktioniert, jetzt muss ich das ganze nur noch auf meine eigentliche Liste ummodeln und formatieren. Hoffe dass ich damit keine Probleme habe, falls doch melde ich mich nochmal.
Nochmals Danke!
Marc

AW: Listenvergleich Makro
24.04.2008 22:29:55
Gonzer
Hallo Erich,
Ich habe doch noch eine Kleinigkeit - in deinem Makro wir doch nur der Wert der ersten Spalte verglichen. In meiner Tabelle sind jedoch einige der Werte in der ersten Spalte identisch und unterscheiden sich erst in Spalte 4. Wie kann ich denn einen eindeutigen Indikator einfuegen. Angenommen Spalte 2 + 5 + 8 ergeben zusammen eine einmalige Kombination.
Danke!

Anzeige
AW: Listenvergleich Makro
25.04.2008 00:14:42
Erich
Hi Marc,
in der angehängten Mappe hab ich das mal nachzuvollziehen versucht.
Gelb sind die Spalten 2, 5 und 8, die für den Key in Spalte K (=11) verwendet werden,
blau sind die Spalten die sonst noch interessant sind.
Viel Spaß mit https://www.herber.de/bbs/user/51847.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Listenvergleich Makro
25.04.2008 00:08:53
Erich
Hallo Marc,
in der "alten" Prozedur habe ich noch zwei Fehler gefunden.
In den Zeilen

Else
zA = CLng(tmp)
If wsNeu.Cells(zN, 4)  wsAlt.Cells(zN, 4) Then
Cells(zV, 3) = "x"
Cells(zV, 5) = wsAlt.Cells(zN, 4)
End If
End If

steht zwei mal wsAlt.Cells(zN, 4)
Das muss natürlich jeweils wsAlt.Cells(zA, 4) heißen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Listenvergleich Makro
25.04.2008 13:41:57
Gonzer
Danke!
Hat mir echt weitergeholfen das Forum, wie schon so viele male...
Werde das Makro noch umschreiben auf meine Listen und dann muesste alles funktionieren.
Nochmals Danke Erich!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige