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

ListBox - Füllen und Auswerten

Forumthread: ListBox - Füllen und Auswerten

ListBox - Füllen und Auswerten
14.01.2003 12:22:40
Felix
Hallo,

seit Tagen durchsuche ich nun schon das Forum. Aber entweder möchte mein Excel nicht oder aber ich habe das alles bis jetzt falsch verstanden.
Ich habe ein Makro und eine User_Form dazu erstellt. In der User_Form sollen nun in einer Liste alle Monatsnamen angezeigt werden. Anschließend soll das Ergebnis dieser Auswahl (Dabei ist es egal ob nun der Index oder der Name des Monats) in eine Variable gelegt werden, dass ich damit später im Makro weiter arbeiten kann.
Leider sind bisher all meine Versuche die ListBox zu füllen fehlgeschlagen. In der User_Form bleibt diese einfach "weiß".
Über eine schnelle Lösung würde ich mich sehr freuen.
Vielen Dank


Felix Staab

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ListBox - Füllen und Auswerten
14.01.2003 12:25:44
Hajo_ZI
Hallo Felix

so lernts Du aber nichts. Stelle doch Deinen bisherigen Code ins Forum und wir schreiben Dir dann was Falsch ist. Jeder hat so seinen eigenen Stil mit VBA und Du wirst es wahrscheinlich anders aufbauen als ich.

Gruß Hajo

Re: ListBox - Füllen und Auswerten
14.01.2003 12:26:42
Bernd Held
Hallo Felix,

lege folgenden Code hinter deine UserForm.

Private Sub UserForm_Initialize()
With UserForm1.ComboBox1
.AddItem "Januar"
.AddItem "Februar"
.AddItem "März"
.AddItem "April"
'usw.

End With
End Sub

Die aktuelle Auswahl aus dem Dropdown kannst Du über den Befhel
msgbox userform1.combobox1.value auslesen.

Viele Grüße
Bernd
MVP für Microsoft Excel
Neue VBA-Bücher, neue FAQs und Makros unter: http://held-office.de

Anzeige
Re: ListBox - Füllen und Auswerten
14.01.2003 12:32:55
Felix
Danke für die schnelle Rückantwort.
Das mit dem lernen ist schon so eine Sache. Am besten lernt man ja in der Praxis. Leider bin ich noch Anfänger und durch das durchsuchen und ausprobieren der verschiedenen Ideen hier im Forum kommt man am Ende auch noch ganz durcheinander.
Ich habe es geschafft dem Textfeld die Monate durch einen Bezug zu einer Tabelle zu übergeben. Leider ist das nicht ganz das was ich möchte. Ich hätte gerne, die Tabelle davon "unberührt" und alle nur im Code abgelegt.
Hier ist der Quelltext, den ich zum Schluss hatte. Leider ist mir mein Excel kurz vorher nochmal abgestürzt...

Private Sub buttonAbbrechen_Click()
result = False
Hide

End Sub

Private Sub buttonStart_Click()
Run ("EON")

End Sub


Private Sub List1_Click()
List1.Value "Januar"
List1.Value = "Februarr"
List1.Text "März"
List1.Text = "Mai"
List1.AddItem "Juni"
List1.AddItem = "Juli"
List1.AddItem "August"
List1.AddItem "September"
List1.AddItem "Oktober"
List1.AddItem "November"
List1.AddItem "Dezember"
ListWert = List1.ListIndex
ListWert = List1.ItemData(ListWert)
Label1.Caption = List1.List(ListWert)
Text1.Text = CDbl(ListWert)
End Sub

(Quelltext für User_Form)

Anzeige
Re: ListBox - Füllen und Auswerten
14.01.2003 12:50:16
Hajo_ZI
Hallo Felix

ich habe jetzt mal Dein Code als grundlage genommen und meine Bemerkungen rein geschriebben.


Option Explicit

Private Sub buttonAbbrechen_Click()
' die Variable result ist im Modul mit Pulic Definier
result = False
' Me. davor, die Userform soll ja geschjlossen werden
Me.Hide
End Sub

Private Sub buttonStart_Click()
Run ("EON") ' Makro aufruufen
End Sub

Private Sub Label1_Click()
End Sub

Private Sub List1_Click()
' die List box sollte gefüllt werden beim Start und
' nicht erst wenn rauf geklickt wird
'List1.Value "Januar"
'List1.Value = "Februarr"
'List1.Text "März"
'List1.Text = "Mai"
'List1.AddItem "Juni"
'List1.AddItem = "Juli"
'List1.AddItem "August"
'List1.AddItem "September"
'List1.AddItem "Oktober"
'List1.AddItem "November"
'List1.AddItem "Dezember"
End Sub

Private Sub UserForm_Initialize()
Dim ListWert As Integer
Dim ByI As Byte
For ByI = 1 To 12
List1.AddItem Format(CDate("01." & ByI & ".2003"), "MMMM")
Next ByI
' es wurde doch noch kein wert gesetzt
' ListWert = List1.ListIndex
' was soll diese Zeile machen, den Befehl kennt mein Excel nicht
' ListWert = List1.ItemData(ListWert)
List1.ListIndex = 0
Label1.Caption = List1.List(List1.ListIndex)
' Die Zahl braucht nicht umgewandelt werden, soll aber die Zahl für den Monat
' angezeigt werden, dann +1
Text1.Text = List1.ListIndex
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: ListBox - Füllen und Auswerten
14.01.2003 12:50:35
Felix
Vielen Dank für Eure Hilfe.
Mir ist sehr geholfen worden. Endlich kann ich weiter arbeiten.
Schönen Tag noch und viele Grüße

Felix

Re: ListBox - Füllen und Auswerten
15.01.2003 13:33:38
Viola
hallo, hallo
;

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

Infobox / Tutorial

ListBox in Excel VBA Füllen und Auswerten


Schritt-für-Schritt-Anleitung

Um eine ListBox in einer Excel VBA UserForm zu füllen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne die Excel VBA-Umgebung: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle eine UserForm: Rechtsklicke im Projektfenster auf deinen Arbeitsmappen-Namen und wähle Einfügen > UserForm.
  3. Füge eine ListBox hinzu: Ziehe eine ListBox aus der Toolbox auf die UserForm.
  4. Füge einen Button hinzu: Ziehe einen Button aus der Toolbox auf die UserForm.
  5. Füge den Code hinzu: Doppelklicke auf die UserForm und füge folgenden Code ein:
Private Sub UserForm_Initialize()
    Dim ByI As Byte
    For ByI = 1 To 12
        List1.AddItem Format(CDate("01." & ByI & ".2003"), "MMMM")
    Next ByI
End Sub
  1. Füge den Button-Code hinzu: Doppelklicke auf den Button und füge folgenden Code ein, um die Auswahl auszulesen:
Private Sub CommandButton1_Click()
    MsgBox "Ausgewählt: " & List1.Value
End Sub
  1. Teste die UserForm: Drücke F5, um die UserForm zu starten. Die ListBox sollte nun mit den Monatsnamen gefüllt sein.

Häufige Fehler und Lösungen

  • ListBox bleibt leer: Stelle sicher, dass der Code zum Füllen der ListBox in der UserForm_Initialize-Methode platziert ist und diese Methode beim Öffnen der UserForm aufgerufen wird.
  • Fehler bei List1.AddItem: Überprüfe, ob List1 tatsächlich der Name deiner ListBox ist. Der Name ist in den Eigenschaften der ListBox im VBA-Editor festgelegt.
  • Falsche Werte bei der Auswahl: Stelle sicher, dass du die richtige Methode verwendest, um den Wert auszulesen, z.B. .Value oder .ListIndex.

Alternative Methoden

Wenn du die ListBox nicht manuell füllen möchtest, kannst du auch Daten aus einer Excel-Tabelle verwenden. Hier ist ein Beispiel:

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Ändere den Blattnamen entsprechend
    Dim i As Long
    For i = 1 To 12
        List1.AddItem ws.Cells(i, 1).Value ' Angenommen, die Monate stehen in der ersten Spalte
    Next i
End Sub

Diese Methode ermöglicht es dir, die ListBox mit Daten aus einer Tabelle zu füllen, ohne sie im Code festlegen zu müssen.


Praktische Beispiele

  1. Monatsnamen in einer ListBox anzeigen: Verwende die oben genannten Codes, um die Monate in einer ListBox zu füllen und die Auswahl auszugeben.
  2. Daten aus einer Tabelle füllen: Wie im vorherigen Abschnitt beschrieben, kannst du Daten aus einer Excel-Tabelle nutzen, um deine ListBox zu füllen.

Tipps für Profis

  • Datenbindung: Betrachte die Verwendung von Datenbindung, um die ListBox dynamisch mit Daten aus einer Datenquelle zu verbinden.
  • Mehrfachauswahl: Wenn du eine Mehrfachauswahl in deiner ListBox benötigst, setze die MultiSelect-Eigenschaft auf fmMultiSelectMulti. Damit kannst du mehrere Werte gleichzeitig auswählen.
  • Ereignisse nutzen: Nutze die Ereignisse der ListBox, um dynamisch auf Benutzeraktionen zu reagieren, wie z.B. List1_Click.

FAQ: Häufige Fragen

1. Wie kann ich eine ListBox in einer UserForm füllen?
Verwende die UserForm_Initialize-Methode, um die ListBox beim Laden der UserForm zu füllen.

2. Was kann ich tun, wenn die ListBox leer bleibt?
Überprüfe, ob der Code zum Füllen der ListBox korrekt ist und dass die ListBox im richtigen Kontext angesprochen wird.

3. Wie kann ich die Auswahl in einer ListBox auswerten?
Du kannst die Auswahl mit .Value oder .ListIndex auslesen und entsprechend weiterverarbeiten.

4. Kann ich eine ListBox mit Daten aus einer Tabelle füllen?
Ja, du kannst Daten aus einer Tabelle in die ListBox einfügen, indem du die Zellen der Tabelle im Code referenzierst.

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