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

Forumthread: ListBox auslesen

ListBox auslesen
18.06.2008 11:24:04
Dieter
In einer Userform habe ich die ListBox1 und die ListBox2 angelegt. ListBox1 wird mit NamensDaten aus einer Tabelle einer anderen Arbeitsmappe nach bestimmten Kriterien gefüllt, funktioniert. Nun wähle ich durch Click Namen in ListBox1 aus und übertrage sie in die ListBox2: "ListBox2.AddItem ListBox1.Text", bzw. "ListBox2.AddItem ListBox1.Value" funktioniert auch. Die Daten in ListBox2 lassen sich mit "ListBox2.ListCount" auch zählen und markieren. Allerdings die Daten stehen nicht zur Weiterverarbeitung zur Verfügung. Zur Kontrolle "MsgBox ListBox2.Text" oder "MsgBox Listbox2.Value" bleibt leer. Was mache ich falsch und was ist der Unterschied zwischen "ListBox().Text" und "ListBox().Value"? Danke im voraus für die schnelle Hilfe.

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox auslesen
18.06.2008 11:50:07
Tobias
Einzelne Elemente der Liste kann man über Listbox1.List abrufen.
Debug.Print ListBox1.List(4)
Schönen Gruß, Tobias
http://www.tobiasschmid.de/

AW: ListBox auslesen
18.06.2008 13:44:00
Dieter
Vielen Dank, Tobias, es funktioniert. Nur zum Verständnis und Lernen: Was bedeuten dann die Befehle
"ListBox.Text" bzw. "ListBox.Value" ?

Anzeige
AW: ListBox auslesen
18.06.2008 15:05:00
Tobias
.Value ist der gerade ausgewählte Wert = blau markiert. Wenn kein Wert ausgewählt wird, ist der Wert "".
Bei .Text bin ich mir nicht sicher, die Hilfe sagt folgendes:

Gibt den Text in einem Textfeld-Steuerelement (TextBox) zurück oder legt den Text fest. Ändert  _
die ausgewählte Zeile in einem Kombinationsfeld-Steuerelement (ComboBox) oder in einem Listenfeld-Steuerelement (ListBox).
Syntax
object.Text [= String]
Die Syntax für die Text-Eigenschaft besteht aus folgenden Teilen:
Teil Beschreibung
object Erforderlich. Ein gültiges Objekt.
String Optional. Ein Zeichenfolgenausdruck, der Text angibt. Der Standardwert ist eine Null- _
Zeichenfolge ("").
Hinweise
Bei einem Textfeld-Steuerelement wird jeder Wert, den Sie der Text-Eigenschaft zuweisen, auch  _
der Value-Eigenschaft zugewiesen.
Bei einem Kombinationsfeld-Steuerelement können Sie die Text-Eigenschaft verwenden, um die  _
Werte des Steuerelements zu aktualisieren. Wenn der Wert der Text-Eigenschaft mit einem vorhandenen Listeneintrag übereinstimmt, wird der Wert der ListIndex-Eigenschaft (der Index der aktuellen Zeile) auf die Zeile gesetzt, die mit der Text-Eigenschaft übereinstimmt. Wenn der Wert der Text-Eigenschaft mit keiner Zeile übereinstimmt, wird der Wert der ListIndex-Eigenschaft auf -1 gesetzt.
Bei einem Listenfeld-Steuerelement muss der Wert der Text-Eigenschaft mit einem vorhandenen  _
Listeneintrag übereinstimmen. Die Angabe eines Wertes, der mit keinem Listeneintrag übereinstimmt, verursacht einen Fehler.
Die Text-Eigenschaft kann nicht verwendet werden, um den Wert einer Eingabe in ein  _
Kombinationsfeld-Steuerelement oder Listenfeld-Steuerelement zu ändern. Verwenden Sie für diesen Zweck die Column- oder die List-Eigenschaft.
Die ForeColor-Eigenschaft bestimmt die Textfarbe.


Schönen Gruß, Tobias
http://www.tobiasschmid.de/

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ListBox auslesen in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Auswahl aus einer ListBox in Excel VBA auszulesen, gehe folgendermaßen vor:

  1. Erstelle eine Userform in deiner Excel-Arbeitsmappe.

  2. Füge zwei ListBox-Steuerelemente hinzu: ListBox1 und ListBox2.

  3. Fülle ListBox1 mit Daten aus einer Tabelle. Zum Beispiel:

    ListBox1.AddItem "Name1"
    ListBox1.AddItem "Name2"
  4. Übertrage die Auswahl von ListBox1 in ListBox2 mit folgendem Code:

    Private Sub ListBox1_Click()
       ListBox2.AddItem ListBox1.Value
    End Sub
  5. Lese den ausgewählten Wert aus der ListBox2:

    Private Sub Button1_Click()
       MsgBox ListBox2.Value
    End Sub

Hierbei ist zu beachten, dass ListBox.Value den aktuell ausgewählten Wert zurückgibt, während ListBox.Text den Text des Steuerelements darstellt.


Häufige Fehler und Lösungen

  • Problem: MsgBox gibt keinen Wert zurück.

    • Lösung: Stelle sicher, dass ein Element in ListBox2 ausgewählt ist, bevor du den Wert ausliest. Nutze .ListIndex um zu überprüfen, ob ein Wert ausgewählt ist:
    If ListBox2.ListIndex <> -1 Then
       MsgBox ListBox2.Value
    Else
       MsgBox "Bitte wähle ein Element aus der ListBox2 aus."
    End If
  • Problem: ListBox1.Text gibt unerwartete Ergebnisse zurück.

    • Lösung: Nutze .Value für den aktuell ausgewählten Eintrag. .Text kann manchmal zu Verwirrung führen, da es sich auf den Text des Steuerelements beziehen kann.

Alternative Methoden

Wenn du eine ListBox in einer Access-Anwendung verwenden möchtest, kannst du den gleichen Ansatz mit Access VBA nutzen. Die Methoden sind ähnlich, nur dass du die spezifischen Objekte und Steuerelemente von Access verwendest.


Praktische Beispiele

Hier ist ein Beispiel, wie du mit einer ListBox in einer Userform arbeiten kannst:

Private Sub UserForm_Initialize()
    ' Füge Daten zur ListBox1 hinzu
    ListBox1.AddItem "Max"
    ListBox1.AddItem "Moritz"
    ListBox1.AddItem "Anna"
End Sub

Private Sub ListBox1_Click()
    ' Übertrage die Auswahl nach ListBox2
    If ListBox1.ListIndex <> -1 Then
        ListBox2.AddItem ListBox1.Value
    End If
End Sub

Private Sub ButtonRead_Click()
    ' Lese den Wert von ListBox2
    If ListBox2.ListIndex <> -1 Then
        MsgBox "Ausgewählter Name: " & ListBox2.Value
    Else
        MsgBox "Keine Auswahl in ListBox2."
    End If
End Sub

Tipps für Profis

  • Nutze ListBox.Selected, um eine Überprüfung durchzuführen, ob ein Element ausgewählt ist.
  • Experimentiere mit ListBox.Text und ListBox.Value, um den Unterschied zwischen den beiden besser zu verstehen.
  • Verwende ListBox.ListCount, um die Anzahl der Elemente in der ListBox zu ermitteln, was hilfreich ist, um sicherzustellen, dass du keine leeren Einträge verarbeitest.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen ListBox.Text und ListBox.Value?
ListBox.Value gibt den aktuell ausgewählten Wert zurück, während ListBox.Text den Text des Steuerelements repräsentiert.

2. Wie lese ich das ausgewählte Element in einer Access ListBox aus?
Der Prozess ist ähnlich wie in Excel VBA. Du kannst ListBox.SelectedItem verwenden, um den ausgewählten Wert auszulesen.

3. Wie zähle ich die Elemente einer ListBox?
Verwende die Eigenschaft ListCount, um die Anzahl der Elemente in der ListBox zu erhalten:

MsgBox "Anzahl der Elemente: " & ListBox1.ListCount

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige