AW: Suche nach Wert in Spalte / Reihe
07.08.2018 11:12:43
Werner
Hallo Reiner,
z.B. so:
Option Explicit
Public Sub Suche()
Dim loLetzte As Long, loZeile As Long
Dim raSuchbereich As Range, raFund As Range
Dim boGefunden As Boolean
With Worksheets("Tab2")
'letzte belegte Zeile in Spalte A ermitteln
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
'Suchbereich festlegen von Zeile 2 bis letzte belegte Zeile in Spalte A
Set raSuchbereich = .Range(.Cells(2, 1), .Cells(loLetzte, 1))
'im festgelegten Suchbereich von unten nach oben nach dem Wert Tab1 A2 suchen
Set raFund = raSuchbereich.Find(what:=Worksheets("Tab1").Range("A2"), LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlPrevious)
'wenn Wert gefunden dann
If Not raFund Is Nothing Then
'wenn rechts neben der Fundzelle nicht leer dann
If raFund.Offset(0, 1) "" Then
'Schalter auf wahr setzen
boGefunden = True
'Addresse der Fundzelle ausgeben
MsgBox raFund.Address(0, 0)
'Prozedur verlassen
Exit Sub
'sonst
Else
'Zeile der ersten Fundstelle merken
loZeile = raFund.Row
'Schleifenstart
Do
'weitersuchen
Set raFund = raSuchbereich.FindNext(raFund)
'wenn Suchbegriff gefunden dann
If Not raFund Is Nothing Then
'wenn rechts neben der Fundstelle nicht leer dann
If raFund.Offset(0, 1) "" Then
'Schalter auf wahr setzen
boGefunden = True
'Addresse der Fundzelle ausgeben
MsgBox raFund.Address(0, 0)
'Prozedur verlassen
Exit Sub
End If
End If
'Schleife ausführen bis erste Suchzeile wieder erreicht ist
Loop While Not raFund Is Nothing And raFund.Row loZeile
End If
End If
End With
'Meldungsausgabe wenn Suchbegriff nicht vorhanden oder kein Wert rechts daneben vorhanden
If Not boGefunden Then MsgBox "Suchbegriff nicht vorhanden bzw." & vbLf & _
"kein Wert zum Suchbegriff vorhanden."
Set raSuchbereich = Nothing: Set raFund = Nothing
End Sub
Wobei mir nicht klar ist, was du denn eigentlich wirklich vor hast.
Gruß Werner