Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox füllen

Listbox füllen
Mister
Hallo,
wie kann ich einen ListBox in einer UF mit einer Schleife füllen? Wenn ich mehrere TextBoxen habe dann mache es so:
If ComboBox1.Value = Sheets("Tabelle1").Cells (i, 1) Then
TextBox1.Value = ......................................
Das Gleiche möchte ich in einem ListBox haben und zwar mit drei Spalten. Geht so etwas?
Danke für eure Hilfe
Gruß
Martin
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox füllen
11.09.2011 11:41:59
fcs
Hallo Martin,
hier 2 Beispiele
Gruß
Franz

Private Sub xxxUserForm_Initialize()
Dim wksData As Worksheet
Dim arrData, Zeile As Long, Spalte As Long, SpalteBox As Long
Set wksData = Worksheets("Daten")
'Listbox1 mit Daten aus Zellbereich füllen
With wksData
arrData = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 6)).Value
End With
Me.ListBox1.List = arrData
'Daten für Listeneintrag zeilenweise übernehmen
With wksData
Me.ListBox2.Clear
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
With Me.ListBox2
.AddItem wksData.Cells(Zeile, 1)
SpalteBox = 0
For Spalte = 2 To 3
SpalteBox = SpalteBox + 1
.List(.ListCount - 1, SpalteBox) = wksData.Cells(Zeile, Spalte)
Next
End With
Next
End With
End Sub

Anzeige
AW: Listbox füllen
11.09.2011 11:55:52
Mister
Hallo fcs,
mit etwas rumbasteln habe ich deinen Code bei mir zu Laufen gebracht.
Danke und Gruß
Martin
AW: Eine Fragge hätte ich noch
11.09.2011 12:04:15
Mister
Hallo nochmals,
ist es möglich mit einem Doppelclick auf einem Listbox ein Makro zu starten und zwar soll Excel dabei erkennen welcher Eintrag im ListBox angeklickt wurde? Also das Makro soll so ungefähr aussehen:
Wenn der Wert in der ersten Spalte der angeklickten Zeile Bedingungen erfüllt dann....
Geht das?
Danke und Grüße
Martin
Anzeige
AW: Eine Fragge hätte ich noch
11.09.2011 12:57:06
fcs
Hallo Martin,
kein Problem, die Listbox kenn das Ereignis Doppelklick, dass man auswerten kann.
Gruß
Franz

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Spalte As Long
ZeileIndex = Me.ListBox1.ListIndex  'gewählten Eintrag Merken
Select Case Me.ListBox1.List(ZeileIndex, 0) 'Wert in 1. Spalte der Listbox prüfen
Case "A"
MsgBox "Jetzt geht's nach ""A"""
Case "B"
MsgBox "Jetzt geht's nach ""C"""
Case Else
MsgBox "Jetzt geht's nach ""irgendwo"""
End Select
End Sub

Anzeige
AW: Eine Fragge hätte ich noch
11.09.2011 15:51:30
Mister
Hallo fcs!
es klappt! Gibt es eine Möglichkeit die augelisteten Einträge zu numerieren, also 1 bis ....? Vielleicht ganz links
Gruß
Martin
AW: Eine Fragge hätte ich noch
11.09.2011 21:38:58
fcs
Hallo Martin,
1. Möglichkeit wäre der List-Box eine zusätzlich Spalte zu spendieren.
Funktioniert aber nur, wenn die Listbox-Einträge mit der AddItem-Methode gefüllt werden. Siehe Beispiel Listbox3 in der für Claudia hochgeladenen Datei.
2. Möglichkeit: Die Nummerierung wird nachträglich vor die Inhalte in der 1. Spalte der Listbox geschrieben.

Private Sub FillListbox3()
'Daten für Listeneintrag aus Zellbereich übernehmen
Dim Zeile As Long, iCount As Long
Dim wks As Worksheet
Set wks = Worksheets("LB3-Auswahl")
Dim arrData
'Listbox3 mit Daten aus Zellbereich füllen
With wks
arrData = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 2)).Value
End With
Me.ListBox3.List = arrData
'Fortlaufende Nummer vor Einträgen in Spalte 1 der List box einfügen
With Me.ListBox3
For Zeile = 0 To .ListCount - 1
iCount = iCount + 1
.List(Zeile, 0) = CStr(iCount) & " - " & .List(Zeile, 0)
Next
End With
Me.ListBox3.ListIndex = -1
End Sub

Gruß
Franz
Anzeige
Datei
11.09.2011 16:14:16
Claudia
Hallo Martin, hallo Franz,
besteht die Möglichkeit, die Datei ohne sensible Daten hochzuladen.
Ich würde mir das gerne auch mal anschauen.
Wäre super!
Vielen lieben Dank!
Liebe Grüße
Claudia
@ Franz: Martin hatte noch eine Frage an Dich.
AW: Datei
11.09.2011 17:25:45
Mister
Hallo Claudia,
das wird wohl nicht möglich sein. Die Datei beinhaltet vertrauliche Daten.
Sorry
Martin
Anzeige
AW: Beispiel-Datei Userform - Listboxen füllen
11.09.2011 21:25:12
fcs
Hallo Claudia,
hier eine Beispieldatei, in der verschiedene Methoden eingebaut sind, um Listboxen mit Auswahldaten zu füllen.
https://www.herber.de/bbs/user/76562.xls
Gruß
Franz
Supi, gucke ich morgen
11.09.2011 22:04:13
Claudia
in Ruhe an. Danke schön!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Listbox in Excel VBA füllen


Schritt-für-Schritt-Anleitung

Um eine ListBox in einer UserForm mit Excel VBA zu füllen, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Erstelle eine UserForm: Gehe zu Einfügen > UserForm und füge die gewünschten Steuerelemente, einschließlich einer ListBox, hinzu.
  3. Schreibe den Code zur Initialisierung: Füge den folgenden Code in das Codefenster der UserForm ein, um die ListBox mit Daten aus einer Tabelle zu füllen.
Private Sub UserForm_Initialize()
    Dim wksData As Worksheet
    Dim arrData As Variant
    Set wksData = Worksheets("Daten")

    'ListBox mit Daten füllen
    arrData = wksData.Range("A2:C" & wksData.Cells(wksData.Rows.Count, 1).End(xlUp).Row).Value
    Me.ListBox1.List = arrData
End Sub
  1. Füge Daten zu deiner Tabelle hinzu: Stelle sicher, dass die Daten in der Tabelle "Daten" vorhanden sind.
  2. Starte die UserForm: Du kannst die UserForm nun durch einen entsprechenden Befehl aufrufen.

Häufige Fehler und Lösungen

  • Problem: Die ListBox zeigt keine Daten an.

    • Lösung: Überprüfe, ob der Zellbereich in deinem Code korrekt definiert ist und die Daten in der Tabelle vorhanden sind.
  • Problem: Der Code führt zu einem Laufzeitfehler.

    • Lösung: Stelle sicher, dass du den richtigen Arbeitsblattnamen verwendest und dass die ListBox in der UserForm existiert.

Alternative Methoden

Es gibt verschiedene Methoden, um eine ListBox in Excel VBA zu füllen. Eine alternative Methode ist die Verwendung der AddItem-Methode, um die ListBox zeilenweise zu befüllen.

Private Sub FillListBox()
    Dim Zeile As Long
    Dim wksData As Worksheet
    Set wksData = Worksheets("Daten")

    Me.ListBox1.Clear
    For Zeile = 2 To wksData.Cells(wksData.Rows.Count, 1).End(xlUp).Row
        Me.ListBox1.AddItem wksData.Cells(Zeile, 1) ' Erste Spalte
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = wksData.Cells(Zeile, 2) ' Zweite Spalte
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = wksData.Cells(Zeile, 3) ' Dritte Spalte
    Next Zeile
End Sub

Praktische Beispiele

Hier sind zwei praktische Beispiele, um eine ListBox in Excel VBA zu füllen:

  1. Füllen einer ListBox aus einer Tabelle: Der folgende Code füllt eine ListBox mit Daten aus den Zellen A2 bis C10.
Private Sub UserForm_Initialize()
    Dim wksData As Worksheet
    Set wksData = Worksheets("Daten")

    Me.ListBox1.List = wksData.Range("A2:C10").Value
End Sub
  1. Nummerierung der ListBox-Einträge: Um die ListBox-Einträge zu nummerieren, kannst du den folgenden Code verwenden:
Private Sub FillListBoxWithNumbers()
    Dim i As Long
    With Me.ListBox1
        .Clear
        For i = 1 To 10 ' Beispiel für 10 Einträge
            .AddItem i & " - Eintrag"
        Next i
    End With
End Sub

Tipps für Profis

  • Verwende Arrays: Wenn du mehrere Daten in einer ListBox füllen möchtest, ist die Verwendung von Arrays effizienter.
  • Datenvalidierung: Stelle sicher, dass die Daten in der Tabelle korrekt sind, um Laufzeitfehler zu vermeiden.
  • Event-Handler nutzen: Implementiere Event-Handler wie DblClick, um auf Benutzerinteraktionen mit der ListBox zu reagieren.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox mit Daten aus mehreren Spalten füllen? Du kannst die AddItem-Methode verwenden, um Daten zeilenweise hinzuzufügen und weitere Spalten mit der List-Eigenschaft zu befüllen.

2. Ist es möglich, den ausgewählten ListBox-Eintrag zu bearbeiten? Ja, das ist möglich. Du kannst den Inhalt der ListBox direkt über die List-Eigenschaft ändern, indem du den Index des ausgewählten Eintrags 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