Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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

Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.

Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 16:33:01
John
Hallo zusammen,

ich habe ein Makro geschrieben, dass die Spalte D im Tabellenblatt "Vereine" mit der Spalte A im Tabellenblatt "Suche" vergleicht.
Bei Gleichheit oder "Treffer" trägt er im Tabellenblatt in Spalte B (0, -2) ein Sortierwort ein, aktuell "Pokalsieger".

Problem: Es funktioniert leider nur, wenn die Werte aus Spalte D Blatt "Verein" und Spalte A Blatt "Suche" genau identisch sind.
Beispiel: Nur wenn "Bayern München" in "Suche" eingetragen wird, klappt der Vergleich und es wird im Blatt Verein in Spalte B das Wort "Pokalsieger" eingetragen.

Ziel: Wie muss ich meinen Code anpassen, damit der Abgleich zwischen den Spalten nicht "gleich" iSv "identisch" ist, sondern "enthält"?
Beispiel: Wenn ich "Bayern" eintrage in Spalte B in Blatt "Suche", hätte ich gerne, dass er auch dann in Blatt "Verein" in Spalte B das Sortierwort "Pokalsieger" einträgt.
Sprich: Wenn ich z.B. "Bayern", "Leverkusen" und "Schalke" eingebe, hätte ich gerne, dass er an die entsprechende Stelle im Blatt "Verein" das Sortierwort einträgt.

Eine Beispieldatei habe ich angefügt.
https://www.herber.de/bbs/user/164263.xlsm
Anbei mein Code:

Private Sub Pokalsieger()
Dim rngTab1, rngTab2 As Range
Dim nichtGefunden As Boolean

For Each rngTab1 In Worksheets("Vereine").Range("D2:D2000")
nichtGefunden = True
If Not rngTab1 = "" Then
For Each rngTab2 In Worksheets("Suche").Range("A2:A300")
If Not rngTab2 = "" Then
If rngTab1 = rngTab2 Then
rngTab1.Offset(0, -2) = "Pokalsieger"
Exit For
End If
Else
Exit For
End If
Next rngTab2
If Not rngTab1 = rngTab2 Then rngTab1.Offset(0, -2) = "x"
Else
Exit For
End If
Next rngTab1
End Sub


Liebe Grüße!
John

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 16:57:43
Yal
Hall oJohn,

probiere so:
Private Sub Pokalsieger()

Dim zVerein As Range
Dim zSuche As Range

For Each zSuche In Worksheets("Suche").Range("A:A").SpecialCells(xlCellTypeConstants, 2)
Set zVerein = Worksheets("Vereine").Range("D:D").Find(zSuche.Value, LookAt:=xlPart, MatchCase:=False)
If zVerein Is Nothing Then 'nichts wurde gefunden
zVerein.Offset(0, -2) = "x"
Else
zVerein.Offset(0, -2) = "Pokalsieger"
End If
Next
End Sub

Ungetestet. Ausschlaggebend ist LookAt:=xlPart (im ggt zu xlWohle)

VG
Yal
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 17:15:45
John
Hi Yal!

Yes, danke, wieder was gelernt!
Funktioniert fast vollständig.

Was er macht:
1) Er geht die (später dann mal sehr lange) Spalte in Worksheets("Vereine").Range("D:D") nur bis zum ersten Treffer durch.
Beispiel: In der Spalte D steht von Zeile 2 bis 29 4x der Verein "VFL Wolfsburg".
Wenn ich den Code ausführe, geht er leider nur bis zum ersten Treffer in Spalte D, also nur bis Zeile 6.

2) "x" bei Nicht-Treffer trägt er leider nicht ein.

Könntest du mir helfen, deinen Code so anzupassen, dass er die ganze Spalte "abarbeitet" und bei Nicht-Treffer das "x" einträgt?

Liebe Grüße!
John
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 20:42:59
GerdL
'N Abend, John.
Zur Veranschaulichung wäre es hilfreich, du zeigst eine Beispieltabelle mit einem Suchbegriff mit mehreren Treffen u. einem ohne Treffer,
Ich habe insbesondere keinen Plan, wo das "X" hinzusetzen ist.
Gruß Gerd
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 21:07:40
John
Guten Morgen Gerd

Danke, dass du mir helfen möchtest! :)

Ich hatte im Eingangspost eine Beispieltabelle gebaut, ich habe sie hier nochmal angefügt, bereits mit dem Code von Yal.
https://www.herber.de/bbs/user/164271.xlsm

Die Datei enthält grade eine händisch eingetragene Lösung; wenn du das Sub "Pokalsieger2" ausführst, sieht man dann, dass er das "Suchwort" leider nur bis zum ersten Treffer durchführt.

Ich hätte dir auch gerne einen Screenshot hier reingefügt in den Text, damit du gleich siehst, was ich meine, ohne die Datei zu öffnen, aber das kriege ich grade nicht hin :-/

Viele Grüße!
John
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
14.11.2023 23:23:27
GerdL
Hallo John!
Sub Unit()



Dim Searchers As Variant, Winners As Variant, Results As Variant
Dim P As Long, S As Long


With Worksheets("Suche")
Searchers = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With

With Worksheets("Vereine")
Winners = .Range("D2:D" & .Cells(Rows.Count, 4).End(xlUp).Row).Value

ReDim Results(LBound(Winners) To UBound(Winners), 1 To 1)
For P = LBound(Results) To UBound(Results)
Results(P, 1) = "x"
Next

For S = LBound(Searchers) To UBound(Searchers)
If Searchers(S, 1) > "" Then
For P = LBound(Winners) To UBound(Winners)
If InStr(Winners(P, 1), CStr(Searchers(S, 1))) Then Results(P, 1) = "Pokalsieger"
Next
End If
Next

.Range("B2:B" & .Cells(Rows.Count, 4).End(xlUp).Row) = Results
End With


End Sub

Gruß Gerd
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
15.11.2023 16:38:59
John
Hi Gerd!

Habe gestern Nacht gar nicht mehr mit einer Antwort gerechnet. Ich hoffe, du liest das noch:
DANKESCHÖN für deinen tollen Code! Spürbares Upgrade zu meinem Versuch, läuft deutlich schneller und irgendwie "smoother".
Fällt mir auch viel schwerer nachzuvollziehen mit F8-Taste, viel Neues für mich drin :D

Danke für deinen Input und die wirklich tolle Lösung. Hast mir wirklich geholfen und mich auch abseits dieser Aufgabe generell Excel-mäßig nach vorne gebracht.

Danke an der Stelle auch nochmal an @Yal, der mir mit seinem Hinweis bzgl. LookAt:=xlPart (im ggt zu xlWohle) auch gut geholfen hatte :)

Liebe Grüße an alle!
John
Anzeige
AW: Zwei Spalten vergleichen, wenn ähnlich Wunschwert eintragen.
GerdL
Ja, danke.
Es fehlt noch der 1. FC Saarbrücken für 2023/4. :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige