der untenstehende Code dient dazu, doppelte Daten zwischen "Grunddaten" und "Altdaten" zu filtern und einen Hyperlink mit Hinweis auf doppelt zu versehen. Schlüssel hierfür sind Spalte D und Spalte E; Wie kann der Code verändert werden, damit sowohl umgekehrt von "Altdaten" auf "Grunddaten", aber auch innerhalb von "Altdaten" und innerhalb von "Grunddaten" nach doppelten Datensätzen gesucht wird. Ich habe schon diverse Lösungen versucht, aber ohne Ergebnis. Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
Sub compareRanges()
Application.ScreenUpdating = False
Dim objWsA As Worksheet, objWsB As Worksheet
Dim rngA As Range, rngB As Range
Dim strA As String, strB As String
Dim lngRow As Long, lngIndex As Long
Dim varRes As Variant
Set objWsA = Sheets("Grunddaten") 'Anpassen
Set objWsB = Sheets("Altdaten") 'Anpassen
Set rngA = objWsA.Range("D2:E" & Application.Max(objWsA.Cells(Rows.Count, 5).End(xlUp).Row, _
2))
Set rngB = objWsB.Range("D2:E" & Application.Max(objWsB.Cells(Rows.Count, 5).End(xlUp).Row, _
2))
For lngIndex = 1 To rngB.Columns.Count
strB = strB + rngB.Parent.Name & "!" & rngB.Columns(lngIndex).Address & "&"
Next
strB = Left(strB, Len(strB) - 1)
For lngRow = 1 To rngA.Rows.Count
strA = ""
For lngIndex = 1 To rngA.Columns.Count
strA = strA + rngA.Parent.Name & "!" & rngA.Cells(lngRow, lngIndex).Address & "&"
Next
strA = Left(strA, Len(strA) - 1)
varRes = Evaluate("MATCH(" & strA & "," & strB & ",0)")
If IsNumeric(varRes) Then
rngA.Parent.Hyperlinks.Add _
Anchor:=rngA.Cells(lngRow, rngA.Columns.Count).Offset(0, 9), _
Address:="", _
SubAddress:=rngB.Parent.Name & "!" & rngB.Rows(varRes).Address, _
TextToDisplay:="Achtung - Datensatz doppelt!"
End If
Next
Set objWsA = Nothing
Set objWsB = Nothing
Set rngA = Nothing
Set rngB = Nothing
End Sub