Anzeige
Archiv - Navigation
1624to1628
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
VBA Listbox
08.06.2018 15:37:06
Tobias
Hallo,
ich habe folgendes Problem mit meiner Listbox. Sie zeigt mir die Einträge der ersten Spalte meiner Tabelle an. Wie kann ich ihr aber nun sagen, dass sie die Werte der Spalte D ausgeben soll?
Ist dies bei diesem Code möglich? Meine VBA-Kenntnisse sind leider sehr beschränkt, deshalb bitte ich um eure Hilfe.
Würde mich sehr freuen
Mit freundlichen Grüßen
Code der Listbox:
'Klick auf die ListBox Ereignisroutine
Private Sub ListBox1_Click()
Dim lZeile As Long
'Wenn der Benutzer einen Namen anklickt, suchen wir
'diesen in der Tabelle1 heraus und tragen die Daten
'in die TextBoxen ein.
'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox1.ListIndex >= 0 Then
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))  ""
'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1
'gefunden haben, übertragen wir die anderen Spalteninhalte
'in die TextBoxen!
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
'TextBoxen füllen
TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
TextBox2 = Tabelle1.Cells(lZeile, 2).Value
TextBox3 = Tabelle1.Cells(lZeile, 3).Value
TextBox4 = Tabelle1.Cells(lZeile, 4).Value
TextBox5 = Tabelle1.Cells(lZeile, 5).Value
TextBox6 = Tabelle1.Cells(lZeile, 6).Value
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Listbox
08.06.2018 18:36:18
EtoPHG
Hallo,
Woher sollen wir das wissen?
Der Code zeigt nicht, wie die Listbox gefüllt wird, sondern was passiert, wenn ein Eintrag ausgewählt und geklickt wird.
Man sollte den Finger von Code lassen, den man nicht versteht.
Das tönt mir verdächtig nach einer Firmenanwendung, die einfach ein armer XL-Freak weiterpflegen muss, und der/die Codeersteller sich verabschiedet haben oder sich in Foren als Helfer tummeln ;-)
Gruess Hansueli
AW: VBA Listbox
08.06.2018 18:57:46
Tobias
Ja richtig. Den Code verstehe ich auch größtenteils nicht... Deswegen habe ich gehofft hier kann mir jemand weiterhelfen, sodass mein Vorhaben trotzdem noch zum gewünschten Ziel führt...
Würde mich sehr freuen
Mit freundlichen Grüßen
Anzeige
AW: VBA Listbox
08.06.2018 20:19:20
Tobias
Habe mich jetzt nochmal etwas mehr eingelesen.
Habe jetzt gefunden wie ich die Spalten auswählen kann. Eine Frage besteht allerdings noch. Ich möchte mir noch 2 weitere Spalten in der Listbox anzeigen lassen. Derzeit wird mir ja nur die erste angezeigt. Welchen befehl brauche ich um in die Listbox noch zwei weitere Spalten zu übernehmen... geht das überhaupt?
Würde mich über einen Rat sehr freuen. @Hansueli dieses mal der richtige
Hier der bisherige Code:
'Startroutine, wird ausgeführt bevor die Eingabemaske angezeigt wird
Private Sub UserForm_Initialize()
Dim lZeile As Long
'Alle TextBoxen leer machen
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
'In dieser Routine laden wir alle vorhandenen
'Einträge in die ListBox1
ListBox1.Clear 'Zuerst einmal die Liste leeren
lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle2.Cells(lZeile, 1).Value))  ""
'Aktuelle Zeile in die ListBox eintragen
ListBox1.AddItem Trim(CStr(Tabelle2.Cells(lZeile, 1).Value))
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub

Anzeige
AW: VBA Listbox
11.06.2018 08:11:27
EtoPHG
Hallo Tobias,
Ja das geht. Im Entwurfsmodus des Userform musst du die Eigenschaften der Listbox anpassen:
BoundColumn N = die Spalte deren Inhalt bei der Auswahl zurückgegeben wird
ColumnCount N = die Anzahl Spalten, die pro Zeile Werte enthalten
ColumnWidthsN.nn Pt;N.nn Pt;... pro Spalte die Breite der Anzeige. 0 = wird nicht angezeigt. Ganz weggelassen, werden die Spaltenbreite verteilt auf die Gesamtbreite der Listbox.
Das Füllen geschieht im Do While-Loop Teil, nach dem Füllen des ersten .AddItem _ Befehls:

lZeile = 2
With ListBox1
Do While Trim(CStr(Tabelle2.Cells(lZeile, 1).Value))  ""
.AddItem Trim(CStr(Tabelle2.Cells(lZeile, 1).Value))
' nächste spalte
.List(.ListCount - 1, 1) = Trim(CStr(Tabelle2.Cells(lZeile, 2).Value)) 'Spalte B
.List(.ListCount - 1, 2) = Trim(CStr(Tabelle2.Cells(lZeile, 5).Value)) 'Spalte E
lZeile = lZeile + 1
Loop
End With
Gruess Hansueli
Anzeige
AW: VBA Listbox
11.06.2018 17:30:56
Tobias
Super danke, es hat funktioniert!
Viele Grüße

70 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige