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

Forumthread: VBA 2 Spalten vergleichen und markieren

VBA 2 Spalten vergleichen und markieren
26.07.2021 15:06:20
Lisa
Hallo zusammen,
ich habe eine Frage, bei der ich nicht mehr weiterkomme.
Ich habe in Spalte A2 bis A++ Texte stehen, von denen ein Bruchteil irgendwo in Spalte B2 bis B++ vorkommen kann.
Bsp:
In A2 steht "Hallo dies ist ein Test. Er wird versendet an Test@test.de"
Irgendwo in Spalte B steht in einer Zelle z. B. "Test@Test.de"
Wenn der Wert aus Spalte B genau so auch in Spalte A zu finden ist, dann soll die Zelle daneben in Spalte C mit einem "X" markiert werden.
Hier mein Ansatz:
Option Explicit

Public Sub MailSuchen()
Dim lngRow As Long
Dim avntTemp As Variant, vntItem As Variant
For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
avntTemp = Split(Cells(lngRow, 1).Value)
For Each vntItem In avntTemp
If InStr(1, Cells(lngRow, 2).Value, vntItem, vbTextCompare) > 0 Then
Range("C2") = "x"
'Range("C2" & Rows.Count).End(xlUp).Row = "X"
End If
Next
Next
End Sub
Mit dem Code habe zwei Probleme:
1. Ich bekomme das dynamische schreiben des "X" nicht hin.
2. Es wird auch ein "X" gesetzt wenn nur ein Teil des gesuchten Textes aus B in A vorkommt.
Heißt: Steht in Spalte B "st@Test.de" wird ein trotzdem "X" gesetzt, dies soll aber nur passieren wenn dort exakt "Test@Test.de" steht
Hat jemand eine Idee, ich beiße mir schon seit Stunden die Zähne an dem Problem aus.
Vielen Dank und viele Grüße
Lisa
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA 2 Spalten vergleichen und markieren
26.07.2021 16:12:51
Rudi
Hallo,
teste mal:

Public Sub MailSuchen()
Dim lngRow As Long
Dim avntTemp As Variant, vntItem As Variant
Application.ScreenUpdating = False
For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(lngRow, 3) = ""
avntTemp = Split(Cells(lngRow, 1).Value)
For Each vntItem In avntTemp
If Not IsError(Application.Match(vntItem, Columns(2), 0)) Then
Cells(lngRow, 3) = "X"
End If
Next vntItem
Next lngRow
End Sub
Gruß
Rudi
Anzeige
AW: VBA 2 Spalten vergleichen und markieren
26.07.2021 17:12:20
Lisa
Hallo Rudi,
Danke schon Mal für die Hilfe.
Die Lösung ist nah dran aber noch nicht ganz richtig.
Aktuell ist es so, dass das X in Spalte C geschrieben wird, wenn in Spalte A und B ein gleicher Inhalt gefunden wird. Allerdings wird das X dorthin geschrieben, wo der Inhalt in Spalte A und nicht in Spalte B steht. Im Prinzip muss das nur getauscht werden, ich bekomme aber immer wieder einen Laufzeitfehler, wenn ich das versuche.
Ich habe mal eine Beispielmappe mit dem IST-Zustand und SOLL-Zustand, in der man das Problem schnell erkennt.
https://www.herber.de/bbs/user/147318.xlsm
Über weitere Hilfe bin ich dankbar.
Liebe Grüße
Lisa
Anzeige
AW: VBA 2 Spalten vergleichen und markieren
27.07.2021 08:37:01
Rudi
Hallo,

Public Sub MailSuchen()
Dim lngRow As Long
Dim avntTemp As Variant, vntItem As Variant
Dim vntRow
Application.ScreenUpdating = False
Columns(3).ClearContents
For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
avntTemp = Split(Cells(lngRow, 1).Value)
For Each vntItem In avntTemp
vntRow = Application.Match(vntItem, Columns(2), 0)
If Not IsError(vntRow) Then
Cells(vntRow, 3) = "X"
End If
Next vntItem
Next lngRow
End Sub
Gruß
Rudi
Anzeige
AW: VBA 2 Spalten vergleichen und markieren
27.07.2021 08:46:51
Lisa
Hallo Rudi,
vielen Dank, das funktioniert super und den Code kann ich auch nachvollziehen.
Viele Grüße
Lisa
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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