wie kann ich eine UserForm-ListBox mit den texten und dem betrag einer tabelle füllen, deren betrag größer null ist?

gruß herbert.
Private Sub UserForm_Initialize()
Dim iZeile As Long
For iZeile = 2 To Range("B65536").End(xlUp).Row
If Cells(iZeile, 3) > 0 Then ListBox1.AddItem Cells(iZeile, 2)
Next iZeile
End Sub
Private Sub UserForm_Initialize()
Dim iZeile As Long
Dim AnzArr As Long
ListBox1.ColumnCount = 2
With Worksheets("butxt")
' Länge Array bestimmen
For iZeile = 2 To .Range("B65536").End(xlUp).Row
If .Cells(iZeile, 3) > 0 Then AnzArr = AnzArr + 1
Next iZeile
' Array dimensionieren
ReDim Arr(AnzArr, 1)
' Variable zurücksetzen (Recycling) :-)
AnzArr = 0
' Array abfüllen
For iZeile = 2 To .Range("B65536").End(xlUp).Row
If .Cells(iZeile, 3) > 0 Then
Arr(AnzArr, 0) = .Cells(iZeile, 2)
Arr(AnzArr, 1) = .Cells(iZeile, 3)
AnzArr = AnzArr + 1
End If
Next iZeile
' Array an Listbox übergeben
ListBox1.List = Arr
End With
End Sub
Um eine UserForm-ListBox in Excel mit Daten aus einer Tabelle zu füllen, kannst Du folgenden VBA-Code verwenden. Dieser ist besonders nützlich, wenn Du nur bestimmte Werte, wie beispielsweise die Beträge größer als Null, in die ListBox einfüllen möchtest.
ALT + F11
.UserForm_Initialize
-Ereignis ein:Private Sub UserForm_Initialize()
Dim iZeile As Long
Dim AnzArr As Long
ListBox1.ColumnCount = 2
With Worksheets("butxt")
' Länge Array bestimmen
For iZeile = 2 To .Range("B65536").End(xlUp).Row
If .Cells(iZeile, 3) > 0 Then AnzArr = AnzArr + 1
Next iZeile
' Array dimensionieren
ReDim Arr(AnzArr, 1)
' Variable zurücksetzen
AnzArr = 0
' Array abfüllen
For iZeile = 2 To .Range("B65536").End(xlUp).Row
If .Cells(iZeile, 3) > 0 Then
Arr(AnzArr, 0) = .Cells(iZeile, 2)
Arr(AnzArr, 1) = .Cells(iZeile, 3)
AnzArr = AnzArr + 1
End If
Next iZeile
' Array an Listbox übergeben
ListBox1.List = Arr
End With
End Sub
Dieser Code füllt die ListBox mit Daten aus der Tabelle "butxt", wobei nur die Zeilen mit Beträgen größer als Null berücksichtigt werden.
Fehler: ListBox bleibt leer
Fehler: Index außerhalb des Bereichs
Wenn Du die ListBox füllen möchtest, ohne VBA zu verwenden, kannst Du auch Excel-Formeln nutzen, um die Daten in eine Hilfsspalte zu extrahieren und dann die ListBox mit diesen Werten zu füllen. Dies kann besonders nützlich sein, wenn Du keine Programmierung verwenden möchtest.
Beispiel 1: ListBox füllen mit spezifischen Werten Wenn Du nur negative Beträge ausschließen möchtest, kannst Du den Code entsprechend anpassen, um die Bedingungen zu ändern.
Beispiel 2: Dynamisches Füllen der ListBox
Du kannst die ListBox auch bei Änderungen in der Tabelle automatisch aktualisieren, indem Du das Change
-Ereignis des Arbeitsblattes verwendest.
ListBox
-Eigenschaft MultiSelect
auf fmMultiSelectMulti
, wenn Du mehrere Auswahlmöglichkeiten erlauben möchtest.RowSource
-Attribut der ListBox, um sie direkt mit einem Bereich in der Tabelle zu verbinden, falls die Kriterien weniger komplex sind.1. Wie kann ich die ListBox mit Daten aus mehreren Spalten füllen?
Verwende die ColumnCount
-Eigenschaft, um die Anzahl der Spalten festzulegen. Füge dann die entsprechenden Werte in das Array ein.
2. Was mache ich, wenn ich die UserForm aus einer anderen Tabelle aufrufen möchte?
Vergewissere Dich, dass Du die richtigen Arbeitsblattnamen im Code angibst und die Daten entsprechend referenzierst.
3. Kann ich die ListBox auch ohne VBA füllen?
Ja, Du kannst eine Hilfsspalte in der Tabelle nutzen und die ListBox mit dieser Spalte füllen, indem Du die RowSource
-Eigenschaft verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen