Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListBox MultiSelect bei mehr als 1 Spalte

ListBox MultiSelect bei mehr als 1 Spalte
23.09.2005 12:48:47
R.Schmitt
Hallo ihr Lieben,
ich bin gerade dabei eine MultiSelect ListBox in einen
Tabellenbereich auszulesen. Datei anbei. Das hat bisher
auch gut geklappt (jedenfalls bei einzeiligen solchen)
Nun wollten unsere Anwender neben der Artikelnummer auch
noch die Artikelgruppe (davor) und den Artikelnamen (danach)
stehen haben. Kein Problem - Formeln geschrieben - Makro
gebaut - ListBox befüllt.
https://www.herber.de/bbs/user/26868.xls
Nun sollen nach wie vor die ausgewählten Artikel der ListBox
in einen Tabellenbereich geschrieben werden (ideal wäre
natürlich, aus der Auswahl gleich einen Array zu bauen), um
ihn dann an ein weiteres Makro zu übergeben.

Seitdem die ListBox mehrspaltig ist, scheint es allerdings
nicht mehr zu funktionieren.
Ich gebe zu - mich überfordert die Aufgabe nur die zweite Spalte
der ListBox auszulesen. Könnte mir dabei bitte jemand helfen ?
Schönes Wochenende allerseits
R.Schmitt
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox MultiSelect bei mehr als 1 Spalte
23.09.2005 14:36:56
Heiko
Hallo R,
wenn du MultiSelect aktiv hast, dann kannst du nicht mehr das einfache Click Ereigniss auswerten. Da ja sonst bei jeder zusätzlichen Auswahl, das Ereignis ausgelöst würde.
Nehme z.B. das DblClick Ereignis, damit geht es. Oder bau dir einen Button drunter 'Auswahl übernehmen'.
Hier mal dein Makro so angepasst, das alle drei Spalten ausgegeben werden und unten an deine Auswahliste angehängt werden.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer
Dim j As Long
j = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
' 1. Spalte
Cells(j, 4).Value = ListBox1.List(i, 0)
' 2. Spalte
Cells(j, 5).Value = ListBox1.List(i, 1)
' 3. Spalte
Cells(j, 6).Value = ListBox1.List(i, 2)
j = j + 1
End If
Next
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
Danke & Nachgefragt
23.09.2005 15:00:32
R.Schmitt
Hallo Heiko,
herzlichen Dank.
Hättest Du noch eine Idee, wie ich die
Cells(j, 5).Value = ListBox1.List(i, 1)
in einen Array bekomme ?
Grüße
R.Schmitt
AW: Danke & Nachgefragt
23.09.2005 15:16:55
Heiko
Hallo R.,
z.B. so:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer, intArrayCounter As Integer
Dim strArray() As String
intArrayCounter = 0
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
' bei zweidimensionalen Arrays wirds dann schwieriger.
ReDim Preserve strArray(intArrayCounter)
strArray(intArrayCounter) = ListBox1.List(i, 1)
intArrayCounter = intArrayCounter + 1
End If
Next
' Das ist nur mal zur testweisen Ausgabe.
Range("E2:E" & UBound(strArray) + 2) = Application.WorksheetFunction.Transpose(strArray())
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Danke & Nachgefragt
23.09.2005 15:32:55
R.Schmitt
Hallo Heiko,
nochmals Herzlichen Dank & Schönes Wochenende.
Werde versuchen, deine Hilfe am Samstag "einzubauen"
Jetzt muß ich aber erstmal zum Doc (wg. Rücken) :-((
Feedback kann also noch etwas dauern.
Grüße
R.Schmitt
;

Forumthreads zu verwandten Themen

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