ich möchte eine Listbox mit Daten füllen.
Wie kann man so etwas machen?
Ich wäre daran interessiert.
Maximillian D.
Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Range("A1").CurrentRegion
' Die oberste Zeile enthaelt die Feldnamen.
' Diese brauchen wir nur dort um die Columnheader darzustellen,
' aber nicht fuer die Listboxeintraege.
' Also den Datenbereich um die Erste Zeile reduzieren.
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns.Count)
' Spaltenanzahl des Datenbereichs ermitteln.
intColums = rngSource.Columns.Count
With Me.ListBox1
.ListStyle = fmListStyleOption ' Auswahlfeld zu Beginn der Zeile
' von Peter Haserodt
' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in Listbox
'.MultiSelect = fmMultiSelectSingle
' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen in Listbo
.MultiSelect = fmMultiSelectMulti
'.MultiSelect = fmMultiSelectExtended
' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
' Dies bewirkt, dass mit Shift und Strg Tasten eine Mehrfachauswahl getroffen
' werden kann
.ColumnCount = intColums
.ColumnHeads = True
.RowSource = rngSource.Address
End With
Set rngSource = Nothing
ListBox1.Tag = ""
End Sub
Private Sub UserForm_Initialize()
ThisWorkbook.Sheets("Tabelle1").Range("A:A").ClearContents
Workbooks.Open "d:\xl\max\liste.xls"
With ActiveWorkbook
.Sheets("Tabelle1").Range("A:A").Copy ThisWorkbook.Sheets("Tabelle1").Range("A1")
.Close False
End With
ListBox1.RowSource = Sheets("Tabelle1").Range("A1:A" & Sheets("Tabelle1").Range("A65536").End(xlUp).Row).Address
End Sub