Der Code für die Schaltfläche "Suche"
Private Sub CommandButton1_Click()
Dim rngCell As Range
Dim strFirstAddress As String
With Worksheets("Mitarbeiter").Range("A:A")
Me.ListBox1.Clear
Set rngCell = .Find(Me.TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.ListBox1
.ColumnCount = 4
.AddItem
.List(.ListCount - 1, 0) = rngCell.Value
.List(.ListCount - 1, 1) = rngCell.Offset(0, 1).Value
.List(.ListCount - 1, 2) = rngCell.Offset(0, 2).Value
.List(.ListCount - 1, 3) = rngCell.Offset(0, 3).Value
.ColumnWidths = "2,5cm;1,5cm;2,5cm;2,5cm"
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
Else
MsgBox "Abteilung nicht gefunden", 48
End If
End With
End Sub
Der Code für die Schaltfläche "Auswahl übernehmen"
Anstatt hier jede Zeile einzeln zu schreiben, kann auch eine Schleife genommen werden.
Private Sub CommandButton2_Click()
Dim wks As Worksheet
Set wks = Worksheets("Auswahl")
With Me.ListBox1
wks.Range("A2:D2").ClearContents
wks.Range("A2").Value = .List(.ListIndex, 0)
wks.Range("B2").Value = .List(.ListIndex, 1)
wks.Range("C2").Value = .List(.ListIndex, 2)
wks.Range("D2").Value = .List(.ListIndex, 3)
End With
End Sub
In diesem Beispiel erlaubt die Listbox nur das Auswählen eines Datensatzes. Sollen mehrere markiert werden können, so bitte den Beitrag
Programmierung ->
Listbox ( Multiselect ) mehrspaltig füllen / In Tabelle schreiben lesen.