AW: Telefonverzeichnis
23.06.2006 11:17:01
Erich
Hallo Tom,
beim Find-Aufruf düfte das Leerzeichen vor dem Fortsetzungszeichen fehlen -
also ...Find( _ statt ...Find(_
Das sollte VBA angemeckert haben.
Da rng ein Range ist, habe ich es auch als solches deklariert, nicht als Variant.
Ich stell hier nochmal das ganze Modul zum Kopieren rein:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim SearchColumn As String, SearchTextFragment As String
Dim MeldgText_1 As String, MeldgText_2 As String
MeldgText_1 = "Bitte mindestens 2 Zeichen "
MeldgText_2 = "Die Groß- oder Kleinschreibung spielt keine Rolle." & Chr(10) & Chr(10) _
& "(Bei weniger als 2 Zeichen erfolgt keine Suche!)"
Select Case ActiveCell.AddressLocal
Case Is = "$A$3" ' Namen suchen
SearchColumn = "A"
SearchTextFragment = InputBox(MeldgText_1 & "des Namens eingeben." _
& Chr(10) & MeldgText_2, "Suchbegriff eingeben", , vbOKCancel)
If Len(SearchTextFragment) < 2 Then Exit Sub
Application.EnableEvents = False
Call SearchTextQuick(SearchTextFragment, SearchColumn)
Application.EnableEvents = True
End Select
End Sub
Sub SearchTextQuick(ByRef SearchTextFragment As String, ByRef SearchColumn As String)
Dim fnd As Range
Set fnd = Range(SearchColumn & "5", SearchColumn & "65535").Find( _
what:=SearchTextFragment, LookIn:=xlValues, LookAt:=xlPart)
If fnd Is Nothing Then
MsgBox "Es wurde leider kein entsprechender Eintrag gefunden", 48, "Suche erfolglos ..."
Else
fnd.Activate
Set fnd = Nothing
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort