Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1712to1716
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
Inhaltsverzeichnis

Listen vergleichen

Listen vergleichen
25.09.2019 12:00:06
Hauke
Hallo zusammen,
ich habe die Aufgabe, 2 Dateien miteinander zu vergleichen und upzudaten.
Beide haben unterschiedliche Formate, die ich aber bereits mit VBA umgewandelt bekomme, so dass sie identisch aussehen.
Nun stehen in der Spalte E jeweils eindeutige Nummern. Es soll überprüft werden, ob die Nummer aus Datei 1 auch in der Spalte E der Datei 2 enthalten ist.
- Falls ja, dann soll die Spalte D (Datei 1) in die Spalte D (Datei 2) kopiert werden.
- Falls nein, soll die komplette Spalte der Datei 1 in die erste leere Zeile unten in der Datei 2 kopiert werden.
Folgendes habe ich bereits gebaut:

Application.ScreenUpdating = False
On Error Resume Next
On Error GoTo 0
Set wkb = Workbooks.Open(Filename:=my_FileName)
Set wkb1 = ThisWorkbook
wkb1.Activate
Set wks = wkb.Worksheets(1)
Set wks1 = wkb1.Worksheets(1)
anz = wks.Cells(65536, 5).End(xlUp).Row
anz1 = wks1.Cells(65536, 5).End(xlUp).Row
For Z = 2 To anz1
suchwert = wks1.Cells(Z, 5)
With wks.Range("e2:a" & anz)
Set c = .Find(suchwert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
For s = 4 To 5
wks.Cells(c.Row, s) = wks1.Cells(Z, s)
Next
Else
For s = 1 To 9
wks.Cells(anz + 1, s) = wks1.Cells(Z, s)
Next
anz = wks.Cells(65536, 1).End(xlUp).Row
End If
End With
Next
Application.ScreenUpdating = True

Es wird immer nur eine neue Spalte eingefügt, wenn eine unbekannte Nummer in Spalte E auftaucht. Weitere Nummern werden nicht gezogen bzw eingefügt. ?!
Die Werte in Spalte 4 werden garnicht erfasst.
Kann mir evtl jemand helfen und hat eine Lösung für mein Problem?
Vielen Dank schonmal vorab!
LG,
Hauke

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listen vergleichen
25.09.2019 12:40:39
MCO
Hallo Hauke!
Diese Angaben widersprechen sich:
On Error Resume Next
On Error GoTo 0

Wenn du doch den Suchwert in spalte 5 festlegst, und in spalte 5 findest, wieso musst du den dann mit einer Schleife nochmal reinschreiben?

anz1 = wks1.Cells(65536, 5).End(xlUp).Row
For Z = 2 To anz1
suchwert = wks1.Cells(Z, 5)
With wks.Range("e2:a" & anz)
Set c = .Find(suchwert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
For s = 4 To 5
wks.Cells(c.Row, s) = wks1.Cells(Z, s)
Next

Falls nein, soll die komplette Spalte der Datei 1 in die erste leere Zeile
Es wird immer nur eine neue Spalte eingefügt
Es mach gar keinen Sinn eine Spalte einzufügen, meinst du Zeile?
Vielleicht ist es doch sinnvoll eine Beispieldatei hochzuladen.
Gruß, MCO
Anzeige
AW: Listen vergleichen
25.09.2019 12:55:14
Hauke
Hi MCO,
danke für deine Rückmeldung.
Das mit den Schleifen macht natürlich keinen Sinn, das schaue ich mir nochmal an.
Habe mal 2 Beispieldateien erstellt:
https://www.herber.de/bbs/user/132195.xlsx
https://www.herber.de/bbs/user/132196.xlsx
Das Makro liegt in Datei 1 und ist der aktuellste Stand mit Werten. Der Wert TEST in Spalte D müsste ein Update erfahren in Datei 2 für 12348 und der für die Fehlende Nummer 12346 müsste die komplette Zeile ;) unten angefügt werden in Datei 2.
Das ist der Plan.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige