AW: Find - zwei Strings gleichzeitig suchen
02.06.2008 07:25:18
Erich
Hallo Werner,
das geht ohne Select, Application.Goto und zweites Find.
Bei einem Treffer in der ersten Spalte musst du doch nur noch prüfen,
ob in Spalte B der Trefferzeile der 2. gesuchte Wert steht.
Probier mal die beiden Varianten:
Option Explicit
Sub Makro1()
Dim rngF As Range, lngR As Long
Set rngF = Columns(1).Find(What:="abc", _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not rngF Is Nothing Then
lngR = rngF.Row
Do
' If Cells(rngF.Row, 2) = "def" Then ' wenn "xlWhole"
If InStr(Cells(rngF.Row, 2), "def") > 0 Then ' wenn "xlPart"
MsgBox "Treffer in Zeile " & rngF.Row
Exit Do ' Ende nach 1. Treffer
Else
Set rngF = Cells.FindNext(rngF)
If rngF Is Nothing Then Exit Do
End If
Loop While rngF.Row > lngR
End If
End Sub
Sub Makro2()
Dim rngF As Range, lngR As Long
Set rngF = Columns(1).Find(What:="abc", _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not rngF Is Nothing Then
lngR = rngF.Row
Do
' If Cells(rngF.Row, 2) = "def" Then ' wenn "xlWhole"
If InStr(Cells(rngF.Row, 2), "def") > 0 Then ' wenn "xlPart"
MsgBox "Treffer in Zeile " & rngF.Row
End If
Set rngF = Cells.FindNext(rngF)
If rngF Is Nothing Then Exit Do
Loop While rngF.Row > lngR
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort