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

Forumthread: VBA: bei ListBox click

VBA: bei ListBox click
06.11.2017 10:41:56
Bernd
Hallo zusammen,
bräuchte mal Hilfe bei folgendem Problem und zwar möchte ich, wenn ich eine Zeile der ListBox (Inhalt ListBox Tabelle1 = 10 Spalten) anklicke, dass alle Werte der ListBox aus den Spalten 5-10 in TextBox6 übernommen werden.
Ich hoffe, dass ich mich klar ausdrücken konnte.
Vielen Dank im Voraus!
Userbild
Office Version 2016 Pro 32bit - Windows10 Pro 64 bit
"Wenn du jemanden ohne Lächeln triffst, schenke ihm dein's!"
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: bei ListBox click
06.11.2017 12:21:18
Bernd
Hallo Matthias,
passte nicht, lag aber an mir, da ich mich nicht korrekt ausgedrückt hatte. Du hast mir aber die entscheidende Idee geliefert.
So der der Code jetzt aus:
TextBox6 = .List(.ListIndex, 5) & vbCrLf & .List(.ListIndex, 6) & vbCrLf & .List(.ListIndex, 7) & vbCrLf & .List(.ListIndex, 8)  & vbCrLf & .List(.ListIndex, 9)
... und TextBox auf "Multiline" eingestellt.
Danke nochmals sehr für deine Bemühungen!!!
Lieben Gruß
Bernd
Anzeige
AW: VBA: bei ListBox click; Alternative
06.11.2017 14:12:12
Rudi
Hallo,
würde ich so machen:
Private Sub ListBox1_Click()
Dim vArr(4), i
For i = 0 To 4
vArr(i) = ListBox1.Column(i + 4)
Next
TextBox6 = Join(vArr, vbCrLf)
End Sub

Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

ListBox Click in Excel VBA: Werte Übernehmen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und füge ein ActiveX-Steuerelement hinzu:

    • Gehe zu "Entwicklertools" > "Einfügen" > Wähle "ListBox" aus.
  2. Füge ein Textfeld hinzu:

    • Gehe erneut zu "Entwicklertools" > "Einfügen" > Wähle "TextBox" aus.
  3. Öffne den VBA-Editor:

    • Rechtsklicke auf das ListBox-Steuerelement und wähle "Code anzeigen".
  4. Füge den folgenden VBA-Code hinzu, um Werte aus der ListBox in das TextBox zu übernehmen:

    Private Sub ListBox1_Click()
       Dim vArr(4), i
       For i = 0 To 4
           vArr(i) = ListBox1.Column(i + 4)
       Next
       TextBox6 = Join(vArr, vbCrLf)
    End Sub
    • Dieser Code übernimmt die Werte aus den Spalten 5 bis 10 der ListBox.
  5. Setze die TextBox auf "Multiline":

    • Wähle die TextBox aus und stelle die Eigenschaft "Multiline" auf "True".
  6. Teste die Anwendung:

    • Klicke auf verschiedene Zeilen in der ListBox und überprüfe, ob die Werte korrekt in das TextBox übernommen werden.

Häufige Fehler und Lösungen

  • Fehler: TextBox bleibt leer

    • Lösung: Stelle sicher, dass du die richtige ListBox und die Spaltenindizes im Code angegeben hast.
  • Fehler: ListBox nicht angezeigt

    • Lösung: Überprüfe, ob das ListBox-Steuerelement korrekt eingefügt wurde und sichtbar ist.
  • Fehler: VBA-Code wird nicht ausgeführt

    • Lösung: Vergewissere dich, dass die Makros in Excel aktiviert sind.

Alternative Methoden

Neben der Verwendung des ListBox Click-Ereignisses gibt es auch andere Ansätze, um Werte zu übernehmen:

  1. Verwendung von Dropdown-Listen:

    • Statt einer ListBox kannst du ein Dropdown-Feld nutzen, das ebenfalls in der Lage ist, Werte anzuzeigen und zu übernehmen.
  2. Benutzung von Formeln:

    • Du kannst auch Formeln verwenden, um Werte aus einer Tabelle basierend auf der Auswahl in einer ListBox anzuzeigen.

Praktische Beispiele

Hier ist ein Beispiel für eine ListBox mit Werten:

Private Sub UserForm_Initialize()
    With ListBox1
        .AddItem "Wert 1"
        .AddItem "Wert 2"
        .AddItem "Wert 3"
        .AddItem "Wert 4"
        .AddItem "Wert 5"
    End With
End Sub

Das obige Beispiel zeigt, wie du Werte zur ListBox hinzufügst, wenn das UserForm initialisiert wird.


Tipps für Profis

  • Verwende ListBox.Selected-Eigenschaft:

    • Du kannst die Selected-Eigenschaft verwenden, um herauszufinden, ob ein bestimmter Eintrag in der ListBox ausgewählt ist.
  • Optimierung des Codes:

    • Vermeide redundante Variablen und benutze statt Join eine Schleife zur Verarbeitung der Daten, falls du spezifische Formatierungen benötigst.
  • Debugging:

    • Nutze die Debug.Print-Anweisung, um Ausgaben während der Entwicklung zu überprüfen und Fehler schneller zu identifizieren.

FAQ: Häufige Fragen

1. Wie funktioniert das ListBox Click-Ereignis in Excel VBA?
Das ListBox Click-Ereignis wird ausgelöst, wenn der Benutzer auf einen Eintrag in der ListBox klickt. Du kannst diesen Code verwenden, um Aktionen daraufhin auszuführen.

2. Was ist der Unterschied zwischen einer ListBox und einem ComboBox?
Eine ListBox zeigt mehrere Elemente gleichzeitig an, während eine ComboBox nur ein Element anzeigt und eine Dropdown-Liste bietet.

3. Wie kann ich die Auswahl in der ListBox speichern?
Du kannst die ausgewählten Elemente in einer Variablen speichern, indem du die ListBox.Selected-Eigenschaft verwendest und die Indizes durchgehst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige