Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range vergleichen

Forumthread: Range vergleichen

Range vergleichen
14.10.2013 12:50:28
Manuel
Hallo,
ein eher simples Problem denke ich, aber trotzdem bekomme ich es nicht hin. Ich habe verschiedene Ranges definiert - rng(1to3) - ich möchte jetzt alle Werte von rng(1) mit allen Werten von rng(2) und rng(3) vergleichen wenn es Übereinstimmungen gibt reicht erstmal eine messagebox oder etwas anderes. Der Vergleich ist hierbei erstmal das wichtige.
Gruß
Manuel

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Range vergleichen
14.10.2013 15:54:30
fcs
Hallo Manuel,
hier eine Lösung die stumpf Zelle für Zelle in Schleifen vergleich.
Wenn die zu vergleichenden Zellbereiche sehr groß sind, dann macht es Sinn, die Bereichsdaten in Daten-Array einzulesen und zu vergleichen, um das Makro zu beschleunigen.
mfg
Franz
Sub BereicheVergleichen()
Dim rng(1 To 3) As Range
Dim strMsg As String, strGefunden As String, strSep As String
Dim Zelle As Range
With ActiveSheet
Set rng(1) = .Range("A2:A10")
Set rng(2) = .Range("C2:C100")
Set rng(3) = .Range("F2:F30")
End With
strSep = ", " 'Trennzeichen Fundstellen
For Each Zelle In rng(1)
strMsg = ""
strGefunden = fncCompareRange(varWert:=Zelle.Value, rngFind:=rng(2))
If strGefunden  "" Then
strMsg = IIf(strMsg = "", strGefunden, strMsg & strSep & strGefunden)
End If
strGefunden = fncCompareRange(varWert:=Zelle.Value, rngFind:=rng(3))
If strGefunden  "" Then
strMsg = IIf(strMsg = "", strGefunden, strMsg & strSep & strGefunden)
End If
strMsg = "Wert " & Zelle.Value & " in " & Zelle.Address _
& " gefunden in Zellen:" & vbLf & vbLf & strMsg
If MsgBox(strMsg, vbInformation + vbRetryCancel, _
"Zellbereiche vergleichen") = vbCancel Then Exit For
Next
End Sub
Function fncCompareRange(varWert, rngFind As Range, _
Optional strSep As String = ", ") As String
Dim strFound As String
Dim Zelle As Range
For Each Zelle In rngFind
If Zelle.Value = varWert Then
If strFound = "" Then
strFound = Zelle.Address
Else
strFound = Zelle.Address
End If
End If
Next
fncCompareRange = strFound
End Function

Anzeige
AW: Range vergleichen
15.10.2013 09:24:51
Manuel
hi, Ich muss viele kleinere Ranges vergleichen, dafür kann ich das Makro ja anpassen. Die Lösung ist vielleicht nicht optimal, wie du bereits gesagt hast, reicht für mich aber erst einmal vollkommen aus. Vielen Dank
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige