AW: Userform zur Suche von Namen
25.04.2007 22:34:00
Namen
Hallo,
es gibt (weiterhin) nur zwei Möglichkeiten, die TextBox zu verlassen:
a) Schließen wird gedrückt - dann wird geschlossen.
b) Die Auswahl in der ListBox wird getroffen - dann tritt ListBox_Change ein
und der ausgewählte Wert wird in die Zelle geschrieben.
Bei Möglichkeit b) wäre es sinnlos, den ersten Wert aus der Ergebnisliste (Listbox)
in die Zelle zu schreiben - er würde beim ListBox_Change sofort mit dem ausgewählten Wert überschrieben.
Bleibt die Möglichkeit a). Dann tritt das Click-Ereignis des Schließen-Buttons ein.
Hier könnte man den ersten Listenwert in die Zelle übernehmen.
TextBox_Exit wird in keinem Fall gebraucht.
Probier mal (Code der UF):
Option Explicit
Private Sub cbuSchließen_Click()
If lboAuswahl.ListCount > 0 Then Sheets(1).Range("B1") = lboAuswahl.List(0)
Unload Me
End Sub
Private Sub lboAuswahl_Change()
Sheets(1).Range("B1") = lboAuswahl.Value
Unload Me
End Sub
Private Sub tboSuch_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim SuchName As String, rngF As Range, strF As String
lboAuswahl.Clear
SuchName = tboSuch & "*"
' If SuchName = "" Then Exit Sub ' Suchname kann nicht leer sein, ist mindestens "*"
With Sheets(1).Range("A1:A100")
Set rngF = .Find(What:=SuchName, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rngF Is Nothing Then
strF = rngF.Address
Do
lboAuswahl.AddItem rngF.Value
Set rngF = .FindNext(rngF)
Loop While Not rngF Is Nothing And rngF.Address strF
End If
End With
If lboAuswahl.ListCount = 0 Then MsgBox "Der gesuchte Wert wurde nicht gefunden!"
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort