Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige