Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm-ListBox füllen

UserForm-ListBox füllen
21.10.2004 14:55:22
Herbert
hallo,
wie kann ich eine UserForm-ListBox mit den texten und dem betrag einer tabelle füllen, deren betrag größer null ist?
Userbild
gruß herbert.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm-ListBox füllen
ChrisL
Hi 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

Gruss
Chris
AW: UserForm-ListBox füllen
21.10.2004 16:18:47
Herbert
hallo chris,
vielen dank für deinen vorschlag, der auch funktioniert, doch hast du mir die zweite spalte vergessen und ich habe vergessen zu sagen, dass ich die prozedur aus einer anderen tabelle heraus aufrufe. diese heißt "jnl" und die, in der die texte stehen heißt "butxt". vielleicht hast du mir noch eine lösung.
gruß herbert.
Anzeige
AW: UserForm-ListBox füllen
ChrisL
Hi Herbert
Tja man wird halt alt und vergesslich ;-)

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

Gruss
Chris
Anzeige
Danke!: UserForm-ListBox füllen
21.10.2004 16:59:29
Herbert
hallo chris,
vielen dank, das wars!!! und bzgl. "Tja man wird halt alt und vergesslich ;-)", kann ich nur sagen: willkommen im club ;o)=)!
gruß herbert.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

UserForm-ListBox mit Daten füllen


Schritt-für-Schritt-Anleitung

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.

  1. Öffne den Visual Basic for Applications (VBA) Editor mit ALT + F11.
  2. Füge eine UserForm hinzu.
  3. Platziere eine ListBox auf der UserForm.
  4. Füge den folgenden Code in das 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.


Häufige Fehler und Lösungen

  • Fehler: ListBox bleibt leer

    • Lösung: Stelle sicher, dass die Arbeitsblattnamen korrekt sind und die Tabelle "butxt" die erwarteten Daten enthält.
  • Fehler: Index außerhalb des Bereichs

    • Lösung: Überprüfe, ob die verwendeten Tabellenblätter und Spalten korrekt referenziert werden.

Alternative Methoden

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.


Praktische Beispiele

  • 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.


Tipps für Profis

  • Setze die ListBox-Eigenschaft MultiSelect auf fmMultiSelectMulti, wenn Du mehrere Auswahlmöglichkeiten erlauben möchtest.
  • Nutze das RowSource-Attribut der ListBox, um sie direkt mit einem Bereich in der Tabelle zu verbinden, falls die Kriterien weniger komplex sind.

FAQ: Häufige Fragen

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.

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