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

Wie kann ich den Wert aus einer Listbox auslesen?

Forumthread: Wie kann ich den Wert aus einer Listbox auslesen?

Wie kann ich den Wert aus einer Listbox auslesen?
07.10.2002 20:30:51
Roland
Hallo Leute,
ich hab ein Formular mit einer Listbox angelegt.
Jetzt möchte ich in einem Makro den Wert der in dieser Listbox angezeigt wird auslesen. Dies gelingt mir leider nur wenn ich die Listbox vorher mit der Maus angeklickt habe. Sonst gibt es den Laufzeitfehler 13 "Typen unverträglich". Kann mir bitte jemand helfen?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Wie kann ich den Wert aus einer Listbox auslesen?
07.10.2002 22:17:28
Nepumuk
Hallo Roland
schau dir mal die Selected-Eigenschaft der Listbox an.
Gruß
Nepumuk
Meine Listbox hat keine Selected Eigenschaft!
08.10.2002 12:16:45
Roland
Hallo Nepomuk,
vielen Dank für Deine Tip! Aber leider hat meine Listbox keine Select Eigenschaft. Weder im Eigenschftenfenster noch im Code: Wenn ich ListBox1.select(TRUE) einfüge kommt eine Compiler Fehlermeldung. Haste noch ne Idee?
Anzeige
Re: Meine Listbox hat keine Selected Eigenschaft!
08.10.2002 15:47:54
Nepumuk
Hallo Roland
hier ein Beispiel, in dem alle Elemente von Listbox1 nach dem drücken von Commandbutton1 in Listbox2 angezeigt werden.

Die Selected-Eigenschaft wird in diesem Fall nicht benötigt. Die Syntax dieser Eigenschaft: ListBox1.Selected(index) = True. Dieser Befehl löst das Click-Ereigniss der Listbox aus.
Ich hoffe, dass dir das weiterhilft.
Gruß
Nepumuk
Anzeige
3 von 2 können ausgelesen werden!
08.10.2002 19:25:35
Roland
Hallo Nepomuk,
Danke nochmal für Deine Hilfe!
Meine Listboxen haben doch Selected Eigenschaften! Ich hatte nur die Syntax falsch eingegeben.
Allerdings: Wenn ich jetzt in der initialisierungsfunktion meines Formulares für alle drei die ListboxX.Select(0)=True aufrufe kann ich zwei von drei auslesen.

Was mache ich noch falsch?

Anzeige
Re: 3 von 2 können ausgelesen werden!
09.10.2002 18:59:03
Nepumuk
Hallo Roland
versuch doch die Listbox mit dem Befehl "deineVariable = ListBox1.List(index)" (siehe meine letzte Nachricht) auszulesen. Das ganze mit der Selected-Eigenschaft ist sowiso nur eine Krücke.
Gruß
Nepumuk
PS. Ich weiß, wie man Nepomuk richtig schreibt. Nur der Standesbeamte in Wasserburg, vor 44 Jahren, nicht.
Anzeige
Re: 3 von 2 können ausgelesen werden!
10.10.2002 08:51:07
Roland
Hallo Nepumuk,
Sorry für die "Namensentstellung"!
Ich finde es ja super, daß Du Dich noch mit meinem Problem auseinandersetzt. Ich hab jetzt zwar eine Lösung gefunden, die momentan einigermassen funktioniert. Aber mir ist nicht klar warum es geht! Ich werde heute abend mal Deinen neuen Vorachlag checken. Allerdings ist mir da noch unklar wie ich an den Index komme wenn bei der ListBox eine Auswahl stattgefunden hat. Initial ist der index wohl 0 oder?
Viele Grüße
Roland
Anzeige

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Wert aus einer Listbox in Excel VBA auslesen


Schritt-für-Schritt-Anleitung

Um den Wert aus einer Listbox in Excel VBA auszulesen, folge diesen Schritten:

  1. Formular erstellen: Öffne den VBA-Editor (ALT + F11) und füge ein UserForm hinzu.
  2. Listbox hinzufügen: Ziehe eine Listbox (z. B. ListBox1) auf das UserForm.
  3. Elemente zur Listbox hinzufügen: Füge einige Elemente zur Listbox hinzu, entweder im Eigenschaftenfenster oder durch Code:
    ListBox1.AddItem "Element 1"
    ListBox1.AddItem "Element 2"
    ListBox1.AddItem "Element 3"
  4. Code zum Auslesen des Werts: Füge einen Button (z. B. CommandButton1) hinzu und implementiere den folgenden Code:
    Private Sub CommandButton1_Click()
       If ListBox1.ListIndex <> -1 Then
           Dim ausgewaehltesElement As String
           ausgewaehltesElement = ListBox1.List(ListBox1.ListIndex)
           MsgBox "Ausgewähltes Element: " & ausgewaehltesElement
       Else
           MsgBox "Bitte wähle ein Element aus der Listbox aus."
       End If
    End Sub
  5. Formular ausführen: Starte das UserForm und teste die Funktionalität, indem Du ein Element auswählst und den Button klickst.

Häufige Fehler und Lösungen

  • Laufzeitfehler 13 "Typen unverträglich": Dieser Fehler tritt auf, wenn Du versuchst, auf die Listbox zuzugreifen, ohne dass ein Element ausgewählt ist. Stelle sicher, dass Du die ListIndex-Eigenschaft überprüfst, bevor Du die Auswahl ausliest.
  • Selected-Eigenschaft nicht gefunden: Wenn Du die Selected-Eigenschaft nicht findest, könnte es daran liegen, dass Du die falsche Syntax verwendest. Stelle sicher, dass Du sie korrekt schreibst:
    ListBox1.Selected(index) = True

Alternative Methoden

Eine andere Methode, um die Auswahl aus der Listbox auszulesen, ist die Verwendung der List-Eigenschaft. Du kannst den Wert direkt wie folgt abrufen:

Dim ausgewaehltesElement As String
ausgewaehltesElement = ListBox1.List(ListBox1.ListIndex)

Das ist oft einfacher als die Verwendung der Selected-Eigenschaft und führt zu weniger Fehlern.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie man mehrere Listboxen verwendet und deren Auswahl ausliest:

Private Sub CommandButton1_Click()
    Dim ausgewaehltesElement1 As String
    Dim ausgewaehltesElement2 As String

    If ListBox1.ListIndex <> -1 Then
        ausgewaehltesElement1 = ListBox1.List(ListBox1.ListIndex)
    End If

    If ListBox2.ListIndex <> -1 Then
        ausgewaehltesElement2 = ListBox2.List(ListBox2.ListIndex)
    End If

    MsgBox "Ausgewählte Elemente: " & ausgewaehltesElement1 & " und " & ausgewaehltesElement2
End Sub

Tipps für Profis

  • Nutze die ListCount-Eigenschaft, um die Anzahl der Elemente in der Listbox zu ermitteln, bevor Du versuchst, auf sie zuzugreifen.
  • Verwende die MultiSelect-Eigenschaft der Listbox, um mehrere Auswahlen zu ermöglichen und deren Werte entsprechend auszulesen.
  • Denke daran, dass die Indizes in VBA bei 0 beginnen, also ist der erste Index 0, der zweite 1 usw.

FAQ: Häufige Fragen

1. Wie kann ich die Auswahl in einer MultiSelect-Listbox auslesen?
Du kannst die Auswahl in einer MultiSelect-Listbox wie folgt auslesen:

Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) Then
        MsgBox "Ausgewähltes Element: " & ListBox1.List(i)
    End If
Next i

2. Was mache ich, wenn kein Element ausgewählt ist?
Überprüfe die ListIndex-Eigenschaft. Wenn sie -1 ist, wurde kein Element ausgewählt. Du solltest eine entsprechende Fehlermeldung anzeigen, um den Benutzer darauf hinzuweisen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige