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

Makro durch Listbox Eintrag aufrufen

Forumthread: Makro durch Listbox Eintrag aufrufen

Makro durch Listbox Eintrag aufrufen
21.09.2015 17:31:23
Manuel
Hallo Leute,
ich habe für ein Projekt eine Userform mit Listbox erstellt, die ich fülle durch "Additem".
Nun ist es kein Problem mittels Commandbutton einen Makro anzusteuern wenn ein entsprechender Listbox Eintrag ausgewählt wird. Dies mache ich mit einer If-Schleife. Jedoch schaffe ich es nicht, mehrere Einträge der Listbox auszuwählen und dann die entsprechenden Makros zu starten.
"Multiselect" habe ich schon in den Eigenschaften der Listbox eingestellt. Jedoch klappt es einfach nicht das bei Klick auf dem CommandButton direkt mehrere Befehle ausgeführt werden.
Hier ist mein derzeitiger Code:
Private Sub UserForm_Activate()
ListBox1.Clear
ListBox1.AddItem "1"
ListBox1.AddItem "2"
ListBox1.AddItem "3"
'usw..
End Sub
Private Sub CommandButton1()
If Trim(ListBox1.List(ListBox1.ListIndex, 0)) = "1" Then
MsgBox ("!")
End If
If Trim(ListBox1.List(ListBox1.ListIndex, 1)) = "2" Then
End If
'usw..
Me.Hide
End Sub

Könnt ihr mir vielleicht helfen?
Beste Grüße
Manuel

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro durch Listbox Eintrag aufrufen
21.09.2015 18:16:24
Daniel
Hi
bei einer Multiselect-Listbox musst du über .Selected-Eigenschaft abfragen, ob der jeweilige Eintrag Selektiert wurde oder nicht)
With listbox1
if .Selected(0) then
hier der Code, der laufen soll wenn der erste Eintrag ausgewählt wurde
end if
if .Selected(1) then
hier der Code, der laufen soll wenn der zweite Eintrag ausgewählt wurde
end if
if .Selected(2) then
hier der Code, der laufen soll wenn der dritte Eintrag ausgewählt wurde
end if
...usw für alle Listboxeinträge
End with

gruß Daniel

Anzeige
AW: Makro durch Listbox Eintrag aufrufen
21.09.2015 20:02:49
Manuel
Super Danke Daniel, ich habe es gerade eben ausprobiert und erfolgreich hinbekommen!
;
Anzeige
Anzeige

Infobox / Tutorial

Makro durch Listbox Eintrag aufrufen


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und gehe zu den Entwicklertools. Klicke auf „Userform“ und füge eine Listbox und einen CommandButton hinzu.

  2. Listbox konfigurieren: Stelle die Eigenschaften der Listbox auf „MultiSelect“ ein. Dies kannst Du im Eigenschaftenfenster tun, indem Du die MultiSelect-Eigenschaft auf fmMultiSelectMulti setzt.

  3. Items zur Listbox hinzufügen: Verwende den folgenden Code, um Items zur Listbox hinzuzufügen. Füge diesen Code in die UserForm_Activate-Sub ein:

    Private Sub UserForm_Activate()
        ListBox1.Clear
        ListBox1.AddItem "1"
        ListBox1.AddItem "2"
        ListBox1.AddItem "3"
        'usw..
    End Sub
  4. Makros für die Listbox-Einträge definieren: Im CommandButton musst Du die .Selected-Eigenschaft verwenden, um herauszufinden, welche Einträge ausgewählt wurden. Hier ein Beispiel:

    Private Sub CommandButton1_Click()
        With ListBox1
            If .Selected(0) Then
                MsgBox "Eintrag 1 ausgewählt"
                ' Hier den Code für den ersten Eintrag einfügen
            End If
            If .Selected(1) Then
                MsgBox "Eintrag 2 ausgewählt"
                ' Hier den Code für den zweiten Eintrag einfügen
            End If
            If .Selected(2) Then
                MsgBox "Eintrag 3 ausgewählt"
                ' Hier den Code für den dritten Eintrag einfügen
            End If
            'usw. für alle Listboxeinträge
        End With
        Me.Hide
    End Sub

Häufige Fehler und Lösungen

  • Fehler beim Auswählen mehrerer Einträge: Stelle sicher, dass die MultiSelect-Eigenschaft der Listbox korrekt gesetzt ist. Wenn Du nur einen Eintrag auswählen kannst, wird die .Selected-Eigenschaft nicht korrekt funktionieren.

  • Makro wird nicht ausgeführt: Überprüfe, ob der Code im CommandButton korrekt implementiert ist und ob die Listbox tatsächlich Einträge enthält.


Alternative Methoden

Eine alternative Methode zum Aufrufen von Makros wäre die Verwendung von Dropdown-Listen oder Kombinationsfeldern, die einfachere Handhabung bieten, jedoch keine Mehrfachauswahl unterstützen. Diese sind nützlich, wenn Du nur eine Auswahl benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Du verwenden kannst:

  1. Eintrag 1: Füge eine MsgBox ein, die bei Auswahl des ersten Eintrags eine spezifische Nachricht anzeigt.

  2. Eintrag 2: Setze eine Berechnung oder eine Aktion, die ausgeführt wird, wenn der zweite Eintrag gewählt wird.

  3. Eintrag 3: Du kannst auch Daten in ein anderes Arbeitsblatt kopieren oder eine Funktion ausführen, die auf dem gewählten Eintrag basiert.


Tipps für Profis

  • Nutze Select Case, um die Auswahl der Listbox effizienter und übersichtlicher zu behandeln. Anstelle von mehreren If-Anweisungen könnte der Code so aussehen:

    Private Sub CommandButton1_Click()
        Select Case True
            Case ListBox1.Selected(0)
                MsgBox "Eintrag 1 ausgewählt"
            Case ListBox1.Selected(1)
                MsgBox "Eintrag 2 ausgewählt"
            Case ListBox1.Selected(2)
                MsgBox "Eintrag 3 ausgewählt"
        End Select
        Me.Hide
    End Sub
  • Halte Deine Userform übersichtlich, indem Du die Anzahl der verfügbaren Einträge in der Listbox begrenzt oder in Gruppen unterteilst.


FAQ: Häufige Fragen

1. Wie kann ich die Listbox mit Daten aus einem Arbeitsblatt füllen?
Du kannst die Listbox mit einer Schleife füllen, die die Werte aus einem bestimmten Bereich im Arbeitsblatt liest.

Private Sub UserForm_Activate()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim i As Long
    For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ListBox1.AddItem ws.Cells(i, 1).Value
    Next i
End Sub

2. Was ist der Unterschied zwischen SingleSelect und MultiSelect?
SingleSelect erlaubt nur die Auswahl eines Elements, während MultiSelect es ermöglicht, mehrere Elemente gleichzeitig auszuwählen.

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