Clever-Excel-Forum

Normale Version: Suchergebnisse mehrspaltig anzeigen und merken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich erstelle aktuell eine Datenbank (DB) und möchte die Suchergebnisse in einer Listbox mehrspaltig darstellen, um eine Auswahl zu treffen. Anschließend soll sich die Zeile gemerkt werden, um die Auswahl in einer Änderungsmaske auszugeben. 

Aktuell suche ich nach (Name, Vorname oder Personalnummer), wie folgt: Hier werden zwar alle Ergebnisse angezeigt, aber nur der Nachname bzw. die Personalnummer angezeigt, schön wäre eine Darstellung von "Name, Vorname, Personalnummer" pro Zeile.

Sub suchen_Person()
Dim lng As Long
Dim i As Integer

i = 0
ListBox1.Clear
Sheets("DB").Activate

 If TextBox_Name.Value = "" Then
   
    
   suchen_vorname
    
    Else

For lng = 2 To ActiveSheet.UsedRange.Rows.Count + 1
If InStr(LCase(Cells(lng, 1).Value), LCase(TextBox_Name.Value)) > 0 Then
  ListBox1.AddItem Cells(lng, 1).Value
  ListBox1.Column(1, i) = Cells(lng, 2).Value
  ListBox1.Column(2, i) = Cells(lng, 3).Value
  ListBox1.Column(3, i) = Cells(lng, 2).Row

  i = i + 1
  zeile = lng
 Else
 End If
Next lng

End If
End Sub

... sub Vorname und Sub Personalnummer.... s.o.

Die Auswahl erfolgt über eine Listbox: Hier aktuell über die "Zeile" (Listindex 3) angegeben, auch hier hätte ich gerne sowohl Name, Vorname und Personalnummer um eine Verwechslung auszuschließen.

Private Sub ListBox1_Click()
With ListBox1

txt_Ausgabe = .List(ListBox1.ListIndex, 3)
End With
End Sub

Darstellung in der Änderungsmaske über: 

Private Sub UserForm_Initialize()

TextBox_Name = Cells(zeile, 1)
TextBox_Vorname = Cells(zeile, 2) 




Wer kann mir helfen? Bitte auch mit Erklärung, damit ich verstehe was ich tue und auch etwas dazu lerne. 
Vielen Dank im Voraus. 

PS: Datei kann ich leider vom Firmenrechner nicht hochladen...
Hallo,

setze die ColumnCount-Eigenschaft der ListBox auf 3. Wink

Gruß Uwe
manchmal ist die Lösung so nah...
So, habe das ein oder andere angepasst: 

Private Sub ListBox1_Click()   'Auswahl übernehmen und anzeigen lassen

TextBox2 = ListBox1.List(ListBox1.ListIndex, 3)
TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4 = ListBox1.List(ListBox1.ListIndex, 1)

'es fehlt nun noch die Zeile wie vorher oben im sub suche_personen zu"merken"/definieren

End Sub

Da mir aufgefallen ist, das er immer die Zeile des letzten Ergebnisses gespeichert und in die Änderungsmaske übernommen hat(war ja an  der falschen Stelle "Personensuche"), ist nun die Frage, wie ich das in der Auswahl (Listbox1_Click) integriere?

Global zeile As Integer ist bereits im Modul definiert.
Hallo,

hinterlege die Zeilennummer doch in einer Spalte der Listbox. Die Spalte kann ja unsichtbar bleiben.

Gruß Uwe
Ohje, habe keine Ahnung wie ich das umsetze. 
Insbesondere wie ich dann auf die Zeile wieder zurückgreife... ?
Hallo,

ListBox1.Column(4, i) = lng

Gruß Uwe