ich bin nahezu neu hier. Ein Kollege hat mir schon einmal sehr geholfen. Das meiste, was ich über VBA weiß, habe ich hier erfahren. Dafür möchte ich mich hier allgemein auch (noch) mal sehr herzlich bedanken.
Ich habe nun mit Eurer aktiven und passiven Hilfe eine VBA Prozedur erstellt, welche Artikelnamen in 2 Spalten in A und in D vergleicht. In Spalte C kommt als Ergebnis der Prozedur "neu" oder "vorhanden" heraus.
In der Tabelle werden nur 9 in Spalte A mit 5 Datensätzen in Spalte B verglichen. Eigentlich muss ich hier mit circa 20.000 Datensätzen arbeiten. Daher arbeite ich mich auch an Arrays heran.
Meine 1. Von 2 Frage ist, was denkt der Profi von Euch über meine Code, was muss ich verbessern?
Die 2. Frage wäre, ob es bei den beiden FOR-NEXT - Schleifen egal ist über welche Spalte ich zuerst gehe? Wenn ich später über Zeilen und Spalten gehe, ist es egal, ob ich zuerst über die Zeile und dann über die Spalten gehe? Ich frage auch in Hinsicht auf die spätere, gewünschte Verwendung von Arrays.
Vorab vielen, vielen Dank an jene, die mir helfen möchten bzw. können! Ich bin offen für gut gemeinte Kritik und Anregungen.
Mit besten Grüßen zum Wochenende
Robert
https://www.herber.de/bbs/user/149128.xlsb
Mein VBA-Code:
Sub ZweiSpaltenAbgleichen()
Tabelle3.Activate
'***** zellenweiser Abgleich
Dim iNeu2 As Integer, jAlt2 As Integer
Range("B:B").ClearContents
Dim aLast As Integer
Dim dLast As Integer
aLast = Range("A1").CurrentRegion.Rows.Count
dLast = Range("D1").CurrentRegion.Rows.Count
For jAlt2 = 2 To aLast
For iNeu2 = 2 To dLast
If Cells(jAlt2, 1) Cells(iNeu2, 4) Then
Range("A1").Offset(jAlt2 - 1, 1).Value = "neu"
Else
Range("A1").Offset(jAlt2 - 1, 1).Value = "vorhanden"
Exit For
End If
Next iNeu2
Next jAlt2
'***** / zellenweiser Abgleich
End Sub