Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige