abuelito
Goto Top

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

Content-ID: 176769

Url: https://administrator.de/contentid/176769

Ausgedruckt am: 15.11.2024 um 23:11 Uhr

83928
83928 24.11.2011 um 12:47:48 Uhr
Goto Top
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ß
abuelito
abuelito 24.11.2011 um 13:10:30 Uhr
Goto Top
Muss ich in der InStr() Funktion nicht eine bestimmte Zeichenfolge (Wort) eingeben, nachdem ich suchen will? Sorry, ich bin noch ein gr. Anfänger.

Grüße
83928
83928 24.11.2011 um 14:03:20 Uhr
Goto Top
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
abuelito
abuelito 25.11.2011 um 11:25:06 Uhr
Goto Top
Hi, vielen Dank, damit funktionierts face-smile
Grüße