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

ComboBox in Userform mit Mehrfachauswahl

Forumthread: ComboBox in Userform mit Mehrfachauswahl

ComboBox in Userform mit Mehrfachauswahl
08.07.2015 07:28:31
Armin
Hallo,
ich bin auf der Suche nach einer Lösung, um in einer ComboBox eine Mehrfachauswahl zu realisieren. Das sollte so funktionieren:
Zur Auswahl stehen in der ComboBox verschiedene Begriffe, z. B. A, B, C, D, E
Wenn die ComboBox leer ist und der eintrag B gewählt wird, steht B in der Combobox. Wird nun eine neue Auswahl getroffen, z. B. D, dann soll B stehen bleiben und D hinzugefügt werden, ggf. mit einem Komma getrennt. Es steht damit "B, D" in Combobox. Wird noch eine Auswahl getroffen, soll diese ebenfalls wieder hinzugefügt werden.
Lässt sich das realisieren?
Viele Grüße
Armin

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ComboBox in Userform mit Mehrfachauswahl
08.07.2015 08:08:47
Kenny
Hallo Armin,
prinzipiell lässt sich das realisieren. Die Frage ist, wo du die Auswahl triffst. Wenn es jetzt zum Beispiel eine Zelle wäre, würde es so gehen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.ComboBox1.AddItem (Target.Value)
End Sub
Liebe Grüße
Kenny

Anzeige
AW: ComboBox in Userform mit Mehrfachauswahl
08.07.2015 08:29:11
Armin
Hallo,
nein, es betrifft keine Zelle auf einem Blatt.
Es sollte so sein, dass direkt in der ComboBox innerhalb der Userform mehrmals die ComboBox aufgerufen wird und der Eintrag, der beim zweiten Aufruf ausgewählt wird zum ersten Eintrag mit einem Komma getrennt hinzugefügt wird.
Vielen Dank
Armin

Anzeige
AW: ComboBox in Userform mit Mehrfachauswahl
08.07.2015 10:14:04
Armin
Ich habe es jetzt so gelöst, dass ich die ausgewählten Daten jeweils in eine Zelle wegschreibe und von dort darauf zugreife.
Vielen Dank
Armin
;
Anzeige

Infobox / Tutorial

ComboBox in Userform mit Mehrfachauswahl


Schritt-für-Schritt-Anleitung

Um eine ComboBox in einer Userform mit Mehrfachauswahl zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge eine Userform hinzu:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > UserForm.
  3. Füge eine ComboBox hinzu:

    • Ziehe eine ComboBox aus der Toolbox auf die Userform.
  4. Füge den folgenden VBA-Code hinzu:

    • Klicke mit der rechten Maustaste auf die Userform und wähle Code anzeigen.
    • Füge den folgenden Code in das Codefenster ein:
    Private Sub ComboBox1_Click()
       Dim selectedItem As String
       selectedItem = ComboBox1.Value
    
       If ComboBox1.ListIndex <> -1 Then
           If Me.ComboBox1.Text = "" Then
               Me.ComboBox1.Text = selectedItem
           Else
               Me.ComboBox1.Text = Me.ComboBox1.Text & ", " & selectedItem
           End If
       End If
    End Sub
  5. Starte die Userform:

    • Du kannst die Userform nun mit F5 ausführen und die Mehrfachauswahl in der ComboBox testen.

Häufige Fehler und Lösungen

  • Fehler: Die Auswahl wird nicht hinzugefügt
    Lösung: Stelle sicher, dass der Code im ComboBox1_Click-Ereignis korrekt eingegeben wurde und dass die ComboBox nicht in einem anderen Ereignis überschrieben wird.

  • Fehler: Die ComboBox bleibt leer
    Lösung: Überprüfe, ob die ComboBox Elemente hat. Wenn die ComboBox leer ist, füge Elemente hinzu, bevor du versuchst, sie auszuwählen.


Alternative Methoden

Eine alternative Methode zur Verwaltung einer Mehrfachauswahl in einer ComboBox wäre die Verwendung einer ListBox, die eine integrierte Mehrfachauswahl unterstützt. Um eine ListBox zu verwenden:

  1. Füge eine ListBox zu deiner Userform hinzu.
  2. Stelle die MultiSelect-Eigenschaft der ListBox auf fmMultiSelectMulti.
  3. Verwende den folgenden Code, um die Auswahl zu verarbeiten:

    Private Sub ListBox1_Click()
       Dim i As Integer
       Dim selectedItems As String
    
       selectedItems = ""
       For i = 0 To ListBox1.ListCount - 1
           If ListBox1.Selected(i) Then
               selectedItems = selectedItems & ListBox1.List(i) & ", "
           End If
       Next i
    
       ' Entferne das letzte Komma
       If Len(selectedItems) > 0 Then
           selectedItems = Left(selectedItems, Len(selectedItems) - 2)
       End If
    
       MsgBox "Ausgewählte Elemente: " & selectedItems
    End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die ComboBox mit Mehrfachauswahl:

  • Projektmanagement: Verwende die ComboBox, um mehrere Aufgaben oder Verantwortlichkeiten auszuwählen.
  • Umfragen: Erlaube den Benutzern, mehrere Optionen in einer Umfrage auszuwählen, z.B. Lieblingsfarben oder -spiele.
  • Datenfilterung: Nutze die ComboBox zur Auswahl mehrerer Filterkriterien in einem Bericht.

Tipps für Profis

  • Datenvalidierung: Überprüfe die Auswahl des Benutzers, um Duplikate zu vermeiden.
  • Dynamische Listen: Fülle die ComboBox dynamisch aus einer Datenquelle, um die Benutzererfahrung zu verbessern.
  • UI-Design: Gestalte die Userform ansprechend, um die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Auswahl in der ComboBox zurücksetzen?
Antwort: Du kannst den Text der ComboBox einfach auf einen leeren String setzen: ComboBox1.Text = "".

2. Frage
Kann ich die ComboBox mit einer Excel-Tabelle verknüpfen?
Antwort: Ja, du kannst die Elemente der ComboBox mit Daten aus einer Excel-Tabelle füllen, indem du AddItem in einer Schleife verwendest, um die Werte hinzuzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige