Ich vergleiche zwei Tabellen jeweils die Spalte C (Datumsspalte) auf gleiche Einträge und lasse die Treffer in eine dritte Tabelle schreiben.
Dabei handelt es sich um Massendaten.
Beim Abgleichen von 8.000 mit 300.000 Zeilen läuft das Makro. Bei über 8.000 Zeilen bricht Excel mit dem Hinweis auf nicht genügend Ressourcen ab.
Kann man den Code so umschreiben, dass immer jeweils "5.000-Päckchen" aus dem Worksheets("Referenz") bis zum Zeilenende hinter einander abgefragt werden ?
Public Sub button12(control As IRibbonControl)
' Geburtsdaten vergleichen
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
Sheets("Vergleich").Select
Dim wksCriteria As Worksheet, WksData As Worksheet, wksTrue As Worksheet
Dim var As Variant
Dim iRow As Long, iRowL As Long
Set wksCriteria = Worksheets("Referenz")
Set WksData = Worksheets("Vergleich")
Set wksTrue = Worksheets("Geburtsdaten")
iRow = 2
Do Until IsEmpty(wksCriteria.Cells(iRow, 3))
var = Application.Match(wksCriteria.Cells(iRow, 3), WksData.Columns(3), 0)
If Not IsError(var) Then
iRowL = wksTrue.Cells(Rows.Count, 1).End(xlUp).Row + 1
wksTrue.Rows(iRowL).Value = wksCriteria.Rows(iRow).Value
wksTrue.Cells(iRowL, 6).Value = Cells(var, 1).Value
wksTrue.Cells(iRowL, 7).Value = Cells(var, 2).Value
wksTrue.Cells(iRowL, 8).Value = Cells(var, 3).Value
wksTrue.Cells(iRowL, 9).Value = Cells(var, 4).Value
End If
iRow = iRow + 1
Loop
wksTrue.Columns("E:E").ClearContents
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.Calculate
End With
Sheets("Geburtsdaten").Select
End Sub
Hat jemand eine Idee oder Lösung ?
Vielen Dank im Voraus.
Gruß Volker