Hallo
amüsanter Suchcode, stammt aus der Zeit Excel 2003! Erkennbar an der LastZell Suche, denn ab 2007 hat Excel über 1 Million Zeilen.
Auf Do Loop kann man komplett verzichten, wenn man keine weitere Auswertung will, die Zelle direkt anspringen will. Ist dann wesentlich kürzer.
Die 2. Variante schaut mal nach wieviele Eintrage es in Spalte B gibt und meldet per MsgBox wenn mehr als ein Treffer gefunden wird. (bei 1 Million Zeilen!)
mfg Nobody
Sub Suchen()
Dim c, rngBer As Range
Dim strSuch As String
Set rngBer = Range("B2:B" & Range("B65536").End(xlUp).Row)
With rngBer
strSuch = InputBox("Suchen nach:", "Suchen in Spalte: B")
If strSuch = "" Then Exit Sub
Set c = .Find(strSuch, LookIn:=xlValues)
If Not c Is Nothing Then c.Activate Else _
MsgBox "Eintrag nicht vorhanden"
End With
End Sub
'Variante 2
Sub Suchen_Vers2()
Dim c As Range, n, firstAddress
Dim strSuch As String, rngBer As Range
Set rngBer = Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
With rngBer
strSuch = InputBox("Suchen nach:", "Suchen in Spalte: B")
If strSuch = "" Then Exit Sub
Set c = .Find(strSuch, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Eintrag nicht vorhanden"
Else
firstAddress = c.Address
Do
n = n + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
c.Activate
If n > 0 Then MsgBox n & " Einträge vorhanden"
End With
End Sub
|