In Excel 2 Spalten vergleichen
Hallo an Alle,
ich muss in Excel 2 Spalten aus 2 Tabellen vergleichen
Ich habe eine Excel Datei mit 2 Tabellenblätter (Tabelle 1 ca. 3.000 Zeilen und Tabelle 2 ca. 350 Zeilen).
Jetzt möchte ich gerne die Zeilen, die sich jeweils (in beiden Tabellen) in Spalte A befinden vergleichen und die doppelten in der Tabelle 1 in grün markieren und die, die in Tabelle 1 aber nicht in Tabelle 2 vorhanden sind, diese in Tabelle 1 in rot markieren.
In Spalte A sind die Firmennamen eingetragen. Leider nicht in beiden Tabellen identisch, d.h. in:
Tabelle 1 heisst eine Firma z.B. Mustermann GmbH und in Tabelle 2 heisst die Firma Mustermann GmbH & Co. KG ... Hier sollte die Markierung grün sein, weil die Firma identisch ist und somit in beiden Tabellenblätter vorhanden ist.
Kann man z.B. so vorgehen, dass man nicht den kompletten String in der Zeile vergleicht, sondern z.B. nur die ersten 4 Stellen?
Anbei den Code, den ich zur Zeit verwende:
Dim Blatt_CBF As String, ZeilAb As String
Dim Blatt_MiFid As String, ZeilBe As String
Sub SuchenUndMarkieren()
ZeilAb = 1
Blatt_CBF = "Tabelle1"
Blatt_MiFid = "Tabelle2"
Start:
ZeilBe = 1
Sheets(Blatt_CBF).Select
ZeilAb = ZeilAb + 1
Cells(ZeilAb, 1).Select
If Cells(ZeilAb, 1) = "" Then GoTo Ende
With Selection.Interior
.ColorIndex = 3
End With
Suchen:
ZeilBe = ZeilBe + 1
If Sheets(Blatt_MiFid).Cells(ZeilBe, 1) = "" Then GoTo Start
If Cells(ZeilAb, 1) = Sheets(Blatt_MiFid).Cells(ZeilBe, 1) Then
With Selection.Interior
.ColorIndex = 4
End With
GoTo Start
End If
GoTo Suchen
Ende:
End Sub
Leider wird mir in Tabelle 1 trotzdem fass alles rot markiert, weil die Schreibweise der Firmen, wie oben im Beispiel beschrieben nicht immer identisch ist.
Wer kann mir helfen?
Vielen Dank für die Hilfe
Grüße
ich muss in Excel 2 Spalten aus 2 Tabellen vergleichen
Ich habe eine Excel Datei mit 2 Tabellenblätter (Tabelle 1 ca. 3.000 Zeilen und Tabelle 2 ca. 350 Zeilen).
Jetzt möchte ich gerne die Zeilen, die sich jeweils (in beiden Tabellen) in Spalte A befinden vergleichen und die doppelten in der Tabelle 1 in grün markieren und die, die in Tabelle 1 aber nicht in Tabelle 2 vorhanden sind, diese in Tabelle 1 in rot markieren.
In Spalte A sind die Firmennamen eingetragen. Leider nicht in beiden Tabellen identisch, d.h. in:
Tabelle 1 heisst eine Firma z.B. Mustermann GmbH und in Tabelle 2 heisst die Firma Mustermann GmbH & Co. KG ... Hier sollte die Markierung grün sein, weil die Firma identisch ist und somit in beiden Tabellenblätter vorhanden ist.
Kann man z.B. so vorgehen, dass man nicht den kompletten String in der Zeile vergleicht, sondern z.B. nur die ersten 4 Stellen?
Anbei den Code, den ich zur Zeit verwende:
Dim Blatt_CBF As String, ZeilAb As String
Dim Blatt_MiFid As String, ZeilBe As String
Sub SuchenUndMarkieren()
ZeilAb = 1
Blatt_CBF = "Tabelle1"
Blatt_MiFid = "Tabelle2"
Start:
ZeilBe = 1
Sheets(Blatt_CBF).Select
ZeilAb = ZeilAb + 1
Cells(ZeilAb, 1).Select
If Cells(ZeilAb, 1) = "" Then GoTo Ende
With Selection.Interior
.ColorIndex = 3
End With
Suchen:
ZeilBe = ZeilBe + 1
If Sheets(Blatt_MiFid).Cells(ZeilBe, 1) = "" Then GoTo Start
If Cells(ZeilAb, 1) = Sheets(Blatt_MiFid).Cells(ZeilBe, 1) Then
With Selection.Interior
.ColorIndex = 4
End With
GoTo Start
End If
GoTo Suchen
Ende:
End Sub
Leider wird mir in Tabelle 1 trotzdem fass alles rot markiert, weil die Schreibweise der Firmen, wie oben im Beispiel beschrieben nicht immer identisch ist.
Wer kann mir helfen?
Vielen Dank für die Hilfe
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176769
Url: https://administrator.de/contentid/176769
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
4 Kommentare
Neuester Kommentar
Kann man z.B. so vorgehen, dass man nicht den kompletten String in der Zeile vergleicht, sondern z.B. nur die ersten 4 Stellen?
Hi,
schau Dir mal die Funktion InStr() an....
Gruß
Ok, war vllt. auch nicht ganz das richtige ;) Probier es mal hiermit:
Dim rngF As Range
Dim strWhat As String
Dim i
For i = 1 To 3000 'Für 3000 Zeilen
strWhat = Left(Worksheets("tabelle1").Cells(i, 1).Value, 4) 'Die ersten 4 Zeichen aus Zelle in Tabelle1
Set rngF = Worksheets("Tabelle2").Columns(1).Find(strWhat) 'Nach den 4 Zeichen suchen in Tabelle2
If Not rngF Is Nothing Then
Worksheets("tabelle1").Cells(i, 1).Interior.ColorIndex = 3 'wenn gefunden dann irgendeine Farbe zuweisen
Else
Worksheets("tabelle1").Cells(i, 1).Interior.ColorIndex = 8 'wenn nicht gefunden dann andere Farbe zuweisen
End If
Set rngF = Nothing
Next i