In diesem Beispiel zeigen wir Ihnen, wie sich Einträge aus einer ActiveX-Listbox, welche sich auf einem Tabellenblatt befindet, auslesen lassen. Dabei soll es auch möglich sein, dass mehrere selektierte Einträge (Multiselect) entsprechend ausgelesen werden können.
Damit in einer ActiveX Listbox mehrere Einträge ausgewählt werden können, muss zunächst die Eigenschaft der Multiselect der Listbox auf frmMultiSelectMulti oder frmMultiSelcetExtended gestellt werden.
Zum Auslesen der gewählten Listbox-Einträge kann folgender VBA-Code verwendet werden.
Sub Multi_Listbox_auslesen() '** Auslesen aller in einer Listbox selektierten Einträge (Multiselect) '** Dimensionierung der Variablen Dim i As Integer Dim lngCnt As Long '** Startzeile festelegen lngCnt = 4 '** Ausgabebereich löschen ActiveSheet.Range("H4:H16").ClearContents With Sheets(1).ListBox1 '** Beenden, wenn nichts ausgewählt wurde If .ListIndex = -1 Then Exit Sub '** Listbox durchlaufen For i = 0 To .ListCount - 1 '** Gewählte Einträge auslesen If .Selected(i) Then txt = .List(i) '** Eintragen der gewählten Einträge auf Tabellenblatt ActiveSheet.Cells(lngCnt, 8).Value = txt '** Zeilenzähler erhöhen lngCnt = lngCnt + 1 End If Next End With End Sub
Die gewählten Einträge werden in diesem Beispiel ab Zelle H4 in den Ausgabebereich geschrieben, siehe Abbildung. In diesem Beispiel wurden in der Listbox die Einträge B, D und F ausgewählt. Dementsprechend werden nach einem Klick auf die Schaltfläche Auswahl auslesen im Ausgabebereich ab Zelle H4 diese gewählten Einträge eingetragen.
Die Inhalte, welche in der Listbox angezeigt werden sollen, befinden sich im Eingabebereich B4:B16 und werden über die Eigenschaft ListFillRange übergeben.
Unter dem folgenden Link können Sie sich die Beispieldatei herunterladen und die Funktion entsprechend selbst nachvollzliehen.