Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox-Eintrag füllt Textboxen

Listbox-Eintrag füllt Textboxen
01.10.2018 17:12:30
Patrick
Moin,
ich versuche mich grad an einer kleinen Datenbank.
Ich habe ein Userform erstellt (Arbeitsblatt 1) mit einer Abfrage.
Und 3 Arbeitsblättern die mit den jeweiligen Daten gefüttert werden.
Je Zeile ein Eintrag und in den Spalten dann die Infos.
Nun möchte ich mit einer Textbox eine Listbox dazu bewegen mir aus Arbeitsblatt 2, Spalte A alle passenden Ergebnisse anzeigen zu lassen. Das funktioniert soweit.
Nun sind neben der Abfrage diverse Textboxen in denen die Infos zu dem gewählten Eintrag der Listbox angezeigt werden sollen.
Wie bringe ich das zustande?
Gruß
Patrick
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox-Eintrag füllt Textboxen
01.10.2018 23:21:20
fcs
Hallo Patrick,
erweitere deine Listbox um eine Spalte.
In diese Spalte schreibst du beim Einlesen der Werte aus Spalte A von Blatt2 die entsprechende Nr der Zeile.
Für die Listbox erstellst du das zugehörige Klick-Ereignismakro.

Private Sub ListBox1_Click()
'Werte zum Listbox-Eintrag aus Tabellenblatt in Textboxen einlesen
Dim wks As Worksheet
Dim Zeile As Long
Dim iItem As Integer
Set wks = Worksheets("Tabelle2")
With Me.ListBox1
iItem = .ListIndex
If iItem = -1 Then Exit Sub
Zeile = .List(iItem, 1)
Me.TextBox2 = wks.Cells(Zeile, 3).Text 'Wert aus Spalte C
Me.TextBox3 = wks.Cells(Zeile, 4).Text 'Wert aus Spalte D
End With
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Textbox1 = Textbox in die der Suchbegriff eingegeben wird
Dim wks As Worksheet
Dim Zeile As Long, Zeile_L As Long
Dim arrWerte()
'Listbox mit Auswahlwerten füllen
Set wks = Worksheets("Tabelle2")
With wks
'letzte Zeile mit Inhalt in Spalte B
Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
With Me.ListBox1
.Clear
For Zeile = 2 To Zeile_L
'Wert in Spalte B mit Suchwert in Textbox vergleichen
If wks.Cells(Zeile, 2).Value = Me.TextBox1.Value Then
.AddItem wks.Cells(Zeile, 1).Text
.List(.ListCount - 1, 1) = Zeile
End If
Next
End With
End Sub
LG
Franz
Anzeige
AW: Listbox-Eintrag füllt Textboxen
02.10.2018 11:03:38
Patrick
Hallo und vielen Dank für die Antwort. Leider klappt es bisher nicht so wie ich mir das gedacht habe.
Habe den Code etwas umgestellt, da er mir sonst bei Auswahl eines Eintrages in der Listbox dieselbige geleert hat.
Nun bekomme ich aber einen Fehler für den Befehl

For Zeile = 2 To Zeile_L
Hier nochmal der umgestellte Code:

Private Sub TextBox1_Change()
Dim rng As Range, strFirst As String
If Len(TextBox1) Then
ListBox1.Clear
With Sheets("QuelleBanken")
Set rng = .Range("A2:A25000").Find(What:=TextBox1, LookIn:=xlValues, LookAt:=xlPart, _
MatchCase:=False, After:=.Range("A25000"))
If Not rng Is Nothing Then
strFirst = rng.Address
Do
ListBox1.AddItem rng.Text
Set rng = .Range("A2:A25000").FindNext(rng)
Loop While Not rng Is Nothing And strFirst  rng.Address
End If
End With
End If
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Textbox1 = Textbox in die der Suchbegriff eingegeben wird
Dim wks As Worksheet
Dim Zeile As Long, Zeile_L As Long
Dim arrWerte()
'Listbox mit Auswahlwerten füllen
Set wks = Worksheets("QuelleBanken")
With wks
'letzte Zeile mit Inhalt in Spalte B
Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
With Me.ListBox1
'.Clear
For Zeile = 2 To Zeile_L
'Wert in Spalte B mit Suchwert in Textbox vergleichen
If wks.Cells(Zeile, 2).Value = Me.TextBox1.Value Then
.AddItem wks.Cells(Zeile, 1).Text
.List(.ListCount - 1, 1) = Zeile
End If
Next
End With
End Sub
Private Sub ListBox1_Click()
'Werte zum Listbox-Eintrag aus Tabellenblatt in Textboxen einlesen
Dim wks As Worksheet
Dim Zeile As Long
Dim iItem As Integer
Set wks = Worksheets("QuelleBanken")
With Me.ListBox1
iItem = .ListIndex
If iItem = -1 Then Exit Sub
Zeile = .List(iItem, 1)
Me.TextBox2 = wks.Cells(Zeile, 3).Text 'Wert aus Spalte C
Me.TextBox3 = wks.Cells(Zeile, 4).Text 'Wert aus Spalte D
End With
End Sub

Anzeige
AW: Listbox-Eintrag füllt Textboxen
02.10.2018 21:55:48
fcs
Halo Parick,
du darfst natürlich nur eine Prozedur verwenden, um die Listbox zu füllen.
Passe die Change-Prozedur der Textbox mit dem Suchtext wie folgt an und lösche die Exit-Prozedur.
Private Sub TextBox1_Change()
Dim rng As Range, strFirst As String
If Len(TextBox1) Then
ListBox1.Clear
With Sheets("QuelleBanken")
Set rng = .Range("A2:A25000").Find(What:=TextBox1, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False, After:=.Range("A25000"))
If Not rng Is Nothing Then
strFirst = rng.Address
Do
With ListBox1
.AddItem rng.Text
.List(.ListCount - 1, 1) = rng.Row
End With
Set rng = .Range("A2:A25000").FindNext(rng)
Loop While Not rng Is Nothing And strFirst  rng.Address
End If
End With
End If
End Sub

Dann sollte die Listbox1_Click funktionieren.
Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige