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

Mit VBA einen Bereich anhand einer Liste durchsuchen

Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 19:17:01
Timo
Hallo zusammen,

ich stehe vor einem Problem und komme einfach nicht weiter.

In einer Excel-Datei habe ich 2 Tabellenblätter.
Im Tabellenblatt 1 ist eine Liste mit Begriffen, die in einer Spalte untereinander stehen.
Im Tabellenblatt 2 stehen ebenfalls in einer Spalte Begriffe untereinander.
Nun möchte ich gerne mit VBA im Tabellenblatt 2 alle Begriffe markieren, die im Tabellenblatt 1 in der Liste vorkommen.

Ich habe bereits einen VBA-Code gefunden und angepasst.
Leider werden die Begriffe, die mehrmals vorkommen, nur 1x markiert. Es sollen aber alle Begriffe markiert werden, auch wenn diese mehrmals vorkommen.

Ich hoffe, ihr könnt mir helfen.

Danke und viele Grüße
Timo

Hier der entsprechende Code:

Sub Werte_faerben()

Dim i As Long
Dim rFoundCell As Range

With ThisWorkbook.Worksheets("Zwischenspeicher")

For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row

Set rFoundCell = ThisWorkbook.ActiveSheet.Columns(10).Find(what:=.Cells(i, 1).Value, After:=ThisWorkbook.ActiveSheet.Columns(10).Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)

If Not rFoundCell Is Nothing Then
rFoundCell.Interior.Color = RGB(189, 215, 238)
End If

Next i

End With

Set rFoundCell = Nothing
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 20:02:25
ralf_b
in der hilfe zu range.find gibt es ein Beispiel wie ein Bereich mit einer do while Schleife durchsucht wird.
Dieses Beispiel solltest du in deiner For Schleife verwenden.
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 21:32:26
Timo
Hallo Ralf,

danke für den Tip.
Habe jetzt einiges probiert, aber ich bekomme es einfach nicht hin.
So fit bin ich in VBA leider nicht. :(

VG Timo
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 22:19:08
ralf_b
dann werde besser. von nichts, kommt nichts.
du brauchst eigentlich nur das hier. den suchbereich, und den find befehl hast du ja schon
If Not c Is Nothing Then 

firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If

Anzeige
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 23:04:24
Timo
Ich habe jetzt folgenden Code.
Den ersten Begriff in der Liste markiert er mir jetzt in der Spalte an allen Fundstellen.
Aber dann läuft der Code in Endlosschleife und macht nicht beim zweiten Begriff in der Liste weiter.
Ich kann den Code dann nur noch mit "Esc" abbrechen.

Was mache ich denn falsch?

Sub Werte_faerben()

Dim i As Long
Dim c As Range
Dim firstAddress As String

With ThisWorkbook.Worksheets("Zwischenspeicher")

For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row

Set c = ThisWorkbook.ActiveSheet.Columns(10).Find(what:=.Cells(i, 1).Value, After:=ThisWorkbook.ActiveSheet.Columns(10).Cells(1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Color = RGB(189, 215, 238)
Set c = ThisWorkbook.ActiveSheet.Columns(10).FindNext(c)
Loop While Not c Is Nothing
End If
Next i
End With
Set c = Nothing
End Sub

Anzeige
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
26.01.2024 23:30:48
ralf_b
versuche mal diese Ergänzung
Loop While Not c Is Nothing And firstAddress > c.Address
AW: Mit VBA einen Bereich anhand einer Liste durchsuchen
27.01.2024 00:04:03
Timo
Es funktioniert hervorragend.
Da wäre ich nie drauf gekommen.

VIELEN DANK

VG Timo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige