Anzeige
Archiv - Navigation
1924to1928
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

2 Namenslisten vergleichen und ergänzen

2 Namenslisten vergleichen und ergänzen
04.04.2023 10:50:44
Karsten Jung

Hallo

ich habe 2 Namenslisten.
Eine Liste vom ersten Tag des aktuellen Quartals.
Eine Liste vom aktuellen Tag.
Jetzt sind am aktuellen Tag bereits Leute aus der Firma ausgetreten.
Daher möchte ich die alte Liste mit der aktuellen vergleichen und die aktuelle durch die fehlenden Namen ergänzen.
Da es um eine Auswertung geht, sind auch die ausgetretenen Mitarbeiter wichtig.

Beide Listen haben über 25.000 Einträge.
Leider gibt es auch Einträge, wo im Namensfeld ein leerer Eintrag ist, daher die zwei IF Prüfungen.

Mein Makro sieht so aus, braucht aber gefühlt ewig.

Public Sub Namen_ergaenzen_Q()
    Application.ScreenUpdating = False
    lastrow = Worksheets("Namen").Range("d65536").End(xlUp).Row
    lastrow2 = Worksheets("Namen_Q2").Range("d65536").End(xlUp).Row
    For a = 2 To lastrow2
        If ThisWorkbook.Worksheets("Namen_Q2").Cells(a, 1) = "" Then GoTo weiter
        If ThisWorkbook.Worksheets("Namen_Q2").Cells(a, 6) = "" Then Exit For
        i = ThisWorkbook.Worksheets("Namen_Q2").Cells(a, 1)
        Set ee = ThisWorkbook.Worksheets("Namen").Columns("A:A").Find(What:=i, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
        If ee Is Nothing Then
            ThisWorkbook.Worksheets("Namen_Q2").Range(a & ":" & a).Copy ThisWorkbook.Worksheets("Namen").Range(lastrow + 1 & ":" & lastrow + 1)
            lastrow = lastrow + 1
        End If
weiter:
    Next a
    Application.ScreenUpdating = True

End Sub


Wie kann ich den deutlich beschleunigen?

MfG

Karsten

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

Betreff
Datum
Anwender
Anzeige
AW: 2 Namenslisten vergleichen und ergänzen
04.04.2023 11:19:58
Daniel
Hi
kopiere einfach die alte Liste und füge sie direkt unter der aktuellen Liste ein.
dann wendest du auf das ganze Konstrukt die Funktion DATEN - DATENTTOOLS - DUPLIKATE ENTFERNEN an, mit der Namensspalte als Kriterium
(besser als Namen ist irgendwas eindeutiges, z.B. Personalnummer, EDV-Benutzername, E-Mailadresse)
beim Duplikateentfernen bleibt von einem Kriterium immer die oberste Zeile stehen und nachfolgenden Zeilen werden gelöscht.
So verschwinden dann aus dem unteren Teil der Liste (alt) die Namen, die schon im oberen Teil (aktuell) vorhanden sind und die, die nicht drin sind, bleiben übrig.
das ist auch mit VBA einfach und kann mit wenigen Schritten programmiert werden. Dabei ist das ganze auch noch sehr schnell und für große Datenmengen geeignet
Ich gehe von einer Überschrift in Zeile 1 aus:

Sheets("Namen_Q2").UsedRange.Offset(1, 0).Copy 'kopieren Namen alt ohne Überschrift)
Sheets("Namen").Cells(Rows.Count, 1).End(xlup).Offset(1, 0).PasteSpecial xlpasteall
Sheets("Namen").UsedRange.RemoveDuplicates 1, xlyes
und was mit den Zeilen ohne Namen ist, müsstest du mal genauer beschreiben.
Das ganze setzt aber voraus, dass ein Name in einer Liste nur einmal mit einer Zeile vorkommt.
Benötigt ein Name in einer Liste mehrere Zeilen, dann müsste man das etwas anders machen um die Sache zu beschleunigen.

Gruß Daniel


Anzeige
AW: 2 Namenslisten vergleichen und ergänzen
04.04.2023 11:52:06
Karsten Jung
Hallo Daniel,

Super!

So einfach das das Leben sein.

DANKE.

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige