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

Forumthread: kein Listbox-Click Ereignis fmMultiSelectExtended

kein Listbox-Click Ereignis fmMultiSelectExtended
04.01.2019 22:35:37
Edwin
Hallo,
ich habe ein Problem mit der Listbox.

Private Sub UserForm_Initialize()
ListBox1.AddItem "Test"
End Sub

Private Sub ListBox1_Click()
MsgBox "hallo Test"
End Sub

Wenn in der Listbox
.MultiSelect = fmMultiSelectSingle
eingestellt ist, dann funktioniert das Click-Ereignis.
Wenn in der Listbox
.MultiSelect = fmMultiSelectExtended
eingestellt ist, dann passiert nichts, wenn ich auf den Listeintrag "Test" klicke.
Ist das normal oder mache ich was falsch?
Viele Grüße
Edwin
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kein Listbox-Click Ereignis fmMultiSelectExtended
04.01.2019 23:06:50
Daniel
HI
das Klick-Event hat jetzt direkt nichts mit dem Mausklick zu tun, sondern damit, dass sich der ListIndex der Listbox ändert (der Listindex zeigt in einer SingleSelect-Listbox den ausgewählten Eintrag an).
da in einer Multiselect-Listbox der ListIndex-Wert nicht mehr relevant ist, funktioniert auch das Click-Event nicht mehr.
in einer Multiselect-Listbox kannst du alternativ das MouseUp-Event verwenden.
Dort musst du dann in einer Schleife über Listbox1.Seleced(i)-Auflistung laufen und überprüfen, welcher Eintrag dort auf WAHR gesetzt ist.
Gruß Daniel
Anzeige
AW: kein Listbox-Click Ereignis fmMultiSelectExtended
04.01.2019 23:39:47
Edwin
Hallo Daniel,
vielen Dank! Du hast mir sehr geholfen.
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
Dim ListBox1Wahr As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1Wahr = ListBox1Wahr + 1
If ListBox1Wahr = 1 Then MsgBox ListBox1.List(i)
End If
Next i
End Sub

Viele Grüße
Edwin
Anzeige
Listeintrag wird nicht angezeigt
04.01.2019 23:09:21
Edwin
Hallo,
bin einen Schritt weiter.
Bei einem Doppelklick bekomme ich ein Ereignis.
Aber der Listeintrag wird nicht angezeigt.
Was mache ich jetzt schon wieder falsch?
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "hallo " & ListBox1
End Sub
Vielen Dank für eure Hilfe.
Edwin
Anzeige
AW: kein Listbox-Click Ereignis fmMultiSelectExtended
04.01.2019 23:09:59
onur
CTRL + KLICKEN
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Listbox-Click Ereignis in Excel VBA: Nutzung von MultiSelect-Optionen


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne den VBA-Editor (ALT + F11) und füge ein neues UserForm hinzu.

  2. Listbox hinzufügen: Ziehe eine Listbox auf das UserForm und nenne sie ListBox1.

  3. Initialisierung: Füge folgenden Code in das UserForm ein:

    Private Sub UserForm_Initialize()
        ListBox1.AddItem "Test"
    End Sub
  4. Klick-Ereignis einrichten: Wenn du die MultiSelect-Option auf fmMultiSelectExtended setzt, funktioniert das Click-Ereignis nicht. Verwende stattdessen das MouseUp-Ereignis:

    Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
                                  ByVal Y As Single)
        Dim ListBox1Wahr As Integer
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) = True Then
                ListBox1Wahr = ListBox1Wahr + 1
                If ListBox1Wahr = 1 Then MsgBox ListBox1.List(i)
            End If
        Next i
    End Sub
  5. Doppelklick-Ereignis: Wenn du zusätzlich auf Doppelklick reagieren möchtest, füge diesen Code hinzu:

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        MsgBox "hallo " & ListBox1
    End Sub

Häufige Fehler und Lösungen

  • Problem: Das Click-Ereignis wird nicht ausgelöst.

    • Lösung: Bei einer MultiSelect-Listbox ist das Click-Ereignis nicht aktiv. Verwende das MouseUp-Ereignis, um die Auswahl zu erfassen.
  • Problem: Doppelklick zeigt keinen Inhalt an.

    • Lösung: Stelle sicher, dass die Listbox nicht leer ist und dass die Doppelklick-Methode korrekt implementiert ist.

Alternative Methoden

Anstelle der Listbox in der Excel VBA-Umgebung kannst du auch HTML-Elemente verwenden, wenn du beispielsweise eine Webanwendung erstellst. Eine html select listbox kann in Kombination mit JavaScript ähnliche Funktionen bieten.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die vba listbox click event in einer UserForm nutzen kannst:

Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
                              ByVal Y As Single)
    Dim selectedItems As String
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            selectedItems = selectedItems & ListBox1.List(i) & vbCrLf
        End If
    Next i
    If selectedItems <> "" Then
        MsgBox "Ausgewählte Elemente:" & vbCrLf & selectedItems
    End If
End Sub

Tipps für Profis

  • Nutze vba listbox change event, um sofortige Reaktionen auf Änderungen in der Auswahl zu erhalten.
  • Achte darauf, dass die Listbox richtig initialisiert ist, bevor du versuchst, auf Ereignisse zu reagieren.
  • Für komplexere Anwendungen kann es hilfreich sein, mit Arrays zu arbeiten, um die ausgewählten Elemente zu speichern und weiterzuverarbeiten.

FAQ: Häufige Fragen

1. Warum funktioniert das Click-Ereignis bei MultiSelect-Listboxen nicht? Das Click-Ereignis bezieht sich auf den ListIndex, der bei MultiSelect-Listboxen nicht relevant ist. Verwende das MouseUp-Ereignis stattdessen.

2. Wie kann ich mehrere Elemente gleichzeitig auswählen? Setze die MultiSelect-Eigenschaft der Listbox auf fmMultiSelectExtended, um mehrere Elemente auszuwählen.

3. Was mache ich, wenn mein Doppelklick nicht funktioniert? Überprüfe, ob die Listbox korrekt gefüllt ist und dass das Doppelklick-Ereignis richtig implementiert wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige