Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Listbox mehrspaltig füllen / In Tabelle schreiben
In Abhängigkeit eines Suchbegriffs soll eine Listbox
a. ) mehrspaltig gefüllt werden
b. ) der ausgewählte Datensatz zurück in ein Tabellenblatt geschrieben werden.
 
 
 
 
Als Beispiel soll diese einfache Tabelle dienen.
 
 
Mitarbeiter
 ABCD
1AbteilungPersNrVornameNachname
2Wareneingang1001EgonSchmitz
3Wareneingang1002ErnaMeier
4Warenausgang1003KarlHuber
5Warenausgang1004EmmaBeispiel
6Rezeption1005JimKnopf
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
 
Nach Start einer Userform kann in diesem Beispiel nach der Abteilung gesucht werden.
Bei Einsatz eines Jokers * wird, wie hier, nach allen Abteilungen gesucht, welche mit einem W anfangen.
Groß- und Kleinschreibung wird ignoriert.
 
 
 
 
Nach Auswahl eines Datensatzes und Klick auf Auswahl übernehmen, wird dieser in die Tabelle "Auswahl" geschrieben.
 
 
Auswahl
 ABCD
1AbteilungPersNrVornameNachname
2Warenausgang1003KarlHuber
3    
4    
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
 
 
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.