468 Aufrufe
Gefragt in Datenbanken von
Hallo,

Ich versuche gerade mit Hilfe eines Macros Übereinstimmungen in zwei Tabs zu finden.
Ein Tabname ist "Blacklist" und die zudurchsuchende Spalte ist B; der andere heißt
"Effects" und die Daten sind in D.
Die beiden Spalten liegen innerhalb einer Exceldatei aber auf unterschiedlichen Tabs
und ich möchte, dass im ersten Tab alle Einträge markiert werden, die auch im zweiten
Tab zu finden sind. Dabei handelt es sich nicht um Zahlen sondern Bezeichnungen.

Vielen Dank für Eure Hilfe!
Jana

1 Antwort

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Jana,

kopiere das folgende Makro in ein Standard Modul deiner Arbeitsmappe:

Sub spaltenvergleich()

Dim lngLetzte As Long
Dim arrBlacklist As Variant
Dim arrEffect As Variant
Dim b As Long
Dim e As Long

'Daten aus Arbeitsblatt Blacklist einlesen
With ThisWorkbook.Worksheets("Blacklist")
lngLetzte = .Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile in Spalte B ermitteln
'Spalte B ab Zeile 2 in Array einlesen; falls in Zeile 1 keine Überschriften sind, entsprechend ändern
arrBlacklist = .Range(.Cells(2, 2), .Cells(lngLetzte, 2))
End With

'Daten aus Arbeitsblatt Effect einlesen
With ThisWorkbook.Worksheets("Effect")
lngLetzte = .Cells(Rows.Count, 4).End(xlUp).Row 'letzte Zeile in Spalte D ermitteln
'Spalte D ab Zeile 2 in Array einlesen; falls in Zeile 1 keine Überschriften sind, entsprechend ändern
arrEffect = .Range(.Cells(2, 4), .Cells(lngLetzte, 4))
End With

'Vergleich
For b = LBound(arrBlacklist, 1) To UBound(arrBlacklist, 1)
For e = LBound(arrEffect, 1) To UBound(arrEffect, 1)
If arrBlacklist(b, 1) = arrEffect(e, 1) Then ThisWorkbook.Worksheets("Blacklist").Cells(b + 1, 2).Interior.ColorIndex = 33
Next e
Next b

End Sub


Gruß

M.O.
...