Option Explicit
Private Sub SearchTest(ByVal bForward As Boolean, ByVal nOutputRow As Integer)
Dim nZielZeile As Integer ' Zeile für die Ausgabe
Dim oRange As Range ' Range Objekt für die Suche
Dim szFirstAddress As String ' erste Fundstelle
Dim szSuchwert As String ' Suchbegriff
Rem ===================================================
Rem == Suchwert aus aktuellem Sheet merken. Verarbei-==
Rem == tungsvaribalen initialisieren. ==
Rem ===================================================
szSuchwert = Cells(1, 2).Value
nZielZeile = 1
Rem ===================================================
Rem == Suchbereich festlegen und Werte suchen. ==
Rem ===================================================
With Range("A1:A400")
Set oRange = .Find(szSuchwert, ActiveCell, _
LookIn:=xlValues, SearchDirection:=IIf(bForward, xlNext, xlPrevious))
szFirstAddress = ""
Rem ===============================================
Rem == Schleife um in Quelle alle Einträge zu ==
Rem == suchen. ==
Rem ===============================================
While Not oRange Is Nothing And szFirstAddress <> oRange.Address
Rem ===========================================
Rem == Da dieser sch... Findbefehl loopt, ==
Rem == merken wir uns die erste Fundstelle ==
Rem ===========================================
If szFirstAddress = "" Then
szFirstAddress = oRange.Address
End If
Cells(nZielZeile, nOutputRow).Value = oRange.Address
Rem ===========================================
Rem == Und weitersuchen in Quelldatei. ==
Rem ===========================================
nZielZeile = nZielZeile + 1
Set oRange = IIf(bForward, .FindNext(oRange), .FindPrevious(oRange))
Wend
End With
End Sub
Public Sub CallSearch()
Call SearchTest(True, 4)
Call SearchTest(False, 5)
End Sub