Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
552to556
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
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listen vergleichen

Listen vergleichen
25.01.2005 13:31:38
R.Schmitt
Einen schönen Nachmittag allerseits,
in der Datei
https://www.herber.de/bbs/user/16809.xls
habe ich beispielhaft mein Problem geschildert.
Es geht darum zwei Arbeitsblätter miteinander zu
vergleichen. Denn täglich erhalte ich eine Liste
mit 50.000 Einträgen. Die Liste rolliert.
D.h. für 10.000 neue Einträge, die unten dazukommen,
fällt oben die gleiche Anzahl raus.
Ich möchte nun gerne die Neue Liste mit der Alten
abgleichen und die Einträge, die in der neuen Liste
nicht mehr enthalten sind, aus der Alten Liste aus-
schneiden und an´s Ende der neuen Liste einfügen.
Zur Identifikation, ob der Eintrag in der neuen Liste
nicht mehr vorkommt, kann mir die in der Spalte A
stehende Zahl dienen.
Habe mich daran schon mit einer Hilfsspalte und
diesem (zugegeben etwas hölzernen) Makro versucht :

Sub Formel()
Application.ScreenUpdating = False
Dim i As Variant
Do Until i = 50000
Range("a2").Offset(i, 1).FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-1],'1a'!C[-1]:C[27],1,FALSE))=TRUE,""Nicht vorhanden"",""Vorhanden"")"
Range("a2").Offset(i, 1).Calculate
If Range("a2").Offset(i, 1).Value = "Nicht vorhanden" Then
Range("a2").Offset(i, 1).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("B7").Select
Application.CutCopyMode = False
End If
If Range("a2").Offset(i, 1).Value <> "Nicht vorhanden" Then
Range("a2").Offset(i, 1).Clear
End If
i = i + 1
Loop
Application.ScreenUpdating = True
End Sub

Ergebnis : Bis er die 50.000 Zeilen durchhatte, waren wir bei der
dritten Tasse Kaffe und dann hatte ich mir die Einträge mit "Nicht
vorhanden" erst noch mit dem Autofilter rüberkopiert.
Gehts auch schneller ?
Vielen Dank
R.Schmitt

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listen vergleichen
25.01.2005 14:37:07
Roland
Hallo R.Schmitt,
versuch das mal:

Sub Listenvergleich()
'schneidet die Datensätze aus Alte aus und hängt sie an Neue an,
'sofern sie dort vorher nicht vorhanden waren
Dim i As Long
Application.ScreenUpdating = False
Sheets("Neue").Activate
For i = 1 To Range("A65536").End(xlUp).Row
If Application.CountIf(Columns(1), Sheets("Alte").Cells(i, 1)) = 0 Then
Sheets("Alte").Rows(i).Cut Range("A" & Range("A65536").End(xlUp).Row + 1)
End If
Next
Application.ScreenUpdating = True
End Sub
Müsste bei 50.000 Datensätzen in max 2 min durch sein. Feedback wäre nett :-)
Gruß
Roland
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige