Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige