AW: Text finden
29.09.2004 20:47:54
andre
Hallo Rainer,
um nicht jede Zelle einzeln zu durchsuchen bietet sich auch Find an:
Sub Makro1()
' Makro am 29.09.2004 von SchauAn aufgezeichnet
Dim Muster As Range, i As Long
Set Muster = Range("A:A").Find("Muster", [a1], xlValues, xlPart)
Do While Not Muster Is Nothing
i = i + 1
Muster.Activate
Set Muster = Columns(1).FindNext(After:=ActiveCell)
If Muster.Address < ActiveCell.Address Then Exit Do
Loop
MsgBox i
End Sub
Mit der Variante von Peter geht es dann so, falls der Begriff Muster mehr als 1x in der Zelle stehen kann:
Sub Makro2()
' Makro am 29.09.2004 von SchauAn aufgezeichnet
Dim Muster As Range, i As Long
Set Muster = Range("A:A").Find("Muster", [a1], xlValues, xlPart)
Do While Not Muster Is Nothing
i = i + 1
Muster.Activate
If Len(Muster.Value) > 5 Then
lngCount = 0
For iLaenge = 1 To Len(Muster.Value) - 5
If LCase(Mid(Muster.Value, iLaenge, 6)) = "muster" Then
lngCount = lngCount + 1
End If
Next
If lngCount > 1 Then i = i + lngCount - 1
End If
Set Muster = Columns(1).FindNext(After:=ActiveCell)
If Muster.Address < ActiveCell.Address Then Exit Do
Loop
MsgBox i
End Sub