Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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
Inhaltsverzeichnis

Listbox Auswahl in Label schreiben

Listbox Auswahl in Label schreiben
20.08.2015 13:30:58
Sven
Hi zusammen,
Ich hänge schon wieder und komme nicht auf den richtigen Ansatz.
Auch die SuFu konnte nicht helfen.
In einer Textbox wird ein Suchbegriff eingegeben. Mit dem Ergebnis fülle ich eine Listbox. Nun möchte ich in der Listbox einen Eintrag auswählen. Dieser Eintrag enthält viel mehr Daten welche nur in dem Tabellenblatt (alles in einer Zeile) zu finden sind.
Beispiel: Suche nach Audi A5 (in textbox)
Listbox zeigt nun Audi A5 Avant, Audi A5 Sportback etc. an.
Jetzt möchte ich einen Eintrag auswählen und mir dadurch weitere Details anzeigen lassen. Diese weiteren Details befinden sich in der gleichen Zeile im Tabellenblatt.
Verschiedene labels sollen mit den weiteren Informationen beschrieben werden.
Ich habe zuerst versucht mir den listbox eintrag auf ein seperates Teabellenblatt zu kopieren und dann per sverweis die weiteren Daten in bestimmte Zellen zu schreiben. Die Zellen dann über die label.caption wieder rückwärts einzulesen.
Bei vielen Datensätzen wird das aber sehr langsam und ich bin mir sicher ich kann in VBA über die Auswahl ebenso die Labels beschriften, oder?
Die Listbox fülle ich mit folgendem Code:
Private Sub Suche_1_Enter_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iRowU As Long
xSuche = SSD_Suchen.Suchfeld_1.Value
If xSuche = "" Then
MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
Suchfeld_1.SetFocus
Exit Sub
End If
Set rng = Worksheets("Tabelle2").Range("B:B").Find _
(xSuche, lookat:=xlPart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets("Tabelle2")
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 1, 0 To iRowU)
arr(0, iRowU) = .Cells(rng.Row, 2)
arr(1, iRowU) = .Cells(rng.Row, 3)
iRowU = iRowU + 1
Set rng = .Range("B:B").FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Suchfeld_1.SetFocus
Else
SSD_Suchen.ListBox1.Column = arr
End If
End Sub
Nun die Frage:
Wie kann ich einen Eintrag auswählen und aus der gleichen Reihe im Tabellenblatt bestimmte Zellen auf labels übertragen?
Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank vorab!
Gruß
Sven

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox Auswahl in Label schreiben
20.08.2015 14:32:28
Sven
Hi zusammen,
ist mein Ansatz richtig :)
readMB.Caption = WorksheetFunction.VLookup(ListBox1.value, Worksheets("Tabelle2").range

Jetzt müsste ich doch "nur" die range bestimmen, welche aber ja durch die Auswahl der Listbox schon bestimmt ist.
Ich hänge :)
Für Hilfe wäre ich dankbar.
Beste Grüße
Sven

Einen Schritt zurück - Array Frage
21.08.2015 09:01:39
Sven
Moin zusammen,
ich glaube mit meinem Ansatz lag ich total falsch deshalb ein andere Ansatz.
Da ich meine Listbox ja mit einem Array fülle sind die Daten ja bereits vorhanden.
Kann ich weitere Daten ins array laden diese aber nicht sofort anzeigen lassen. Also die Spalten in der Listbox weiter auf 3 beschränkt lassen?
Aktuell hat mein Array 3 Spalten, ich könnte aber alle 30 Spalten einlesen und nach Doppelclick Event übertragen lassen, richtig?
Gibt es eine Simple Methode Array Daten als label.caption anzeigen zu lassen!?
so lese ich die Daten in mein array:
Set rng = Worksheets("Tabelle2").Range("B:B").Find _
(xSuche, lookat:=xlPart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets("Tabelle2")
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 2, 0 To iRowU)
arr(0, iRowU) = .Cells(rng.Row, 2)
arr(1, iRowU) = .Cells(rng.Row, 3)
arr(2, iRowU) = .Cells(rng.Row, 4)
iRowU = iRowU + 1
Set rng = .Range("B:B").FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
Mir ist aber nicht bekannt wie ich einzelne array Daten nun weiterverarbeiten kann!?
Bitte um Denkanstoß :)
Danke euch
Gruß
Sven

Anzeige
AW: Einen Schritt zurück - Array Frage
21.08.2015 14:51:25
Sven
TGIF :)
Ich schließe mal den Thread und werde versuchen einen richtigen Thread mit Datei zu posten.
Schönes Wochenende!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige