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

Forumthread: Mehrfachauswahl der Listbox in Zeile eintragen.

Mehrfachauswahl der Listbox in Zeile eintragen.
Gatz
Guten Morgen, liebe Community
Ich habe eine Listbox welche sich die Werte aus einer Tabelle holt, bei dieser kann man in der Userform mehrere Einträge makieren und soll via Button in eine neue Zelle eintragen. Habe es hinbekommen das er einen Wert in eine Zelle und den nächsten Wert darunter. Ich würde gerne aber alle markierten Werte in eine Zeile mit "," getrennt.
Hier mal der code-schnipsel

Private Sub CommandButton3_Click()
Dim i, zeile As Long
With Worksheets("test")
' erste leere Zeile ermitteln
zeile = .Cells(.Rows.Count, "A").End(xlUp).row + 1
For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i) = True Then
'zeile ist die Zeile in der die markierten Werte
'aus der Listbox untereinander eingetragen werden
zeile = zeile + 1
.Cells(zeile, "A") = ListBox2.List(i)
End If
Next
End With
End Sub


Anzeige
AW: Mehrfachauswahl der Listbox in Zeile eintragen.
08.01.2012 11:06:10
Hajo_Zi
'zeile = zeile + 1
if .Cells(zeile, "A") ="" Then
.Cells(zeile, "A") = ListBox2.List(i)
else
.Cells(zeile, "A") = .Cells(zeile, "A") & "," &ListBox2.List(i)
end if

AW: Mehrfachauswahl der Listbox in Zeile eintragen.
08.01.2012 11:14:50
Gatz
einfach genial, herzlichen Dank!
Anzeige
AW: Mehrfachauswahl der Listbox in Zeile eintragen.
08.01.2012 22:35:29
Gatz
Und wenn nicht selektiert wurde, soll "keine" eingetragen werden, wie ist das zu bewerkstelligen?
:)
AW: Mehrfachauswahl der Listbox in Zeile eintragen.
09.01.2012 06:02:38
Hajo_Zi
If Listbox1"" then
Gruß Hajo
AW: Mehrfachauswahl der Listbox in Zeile eintragen.
08.01.2012 22:59:59
Gatz
und wenn nichts ausgewählt wurde, was muss wo eingefügt werden das "keine" in die Tabelle übertragen wird?
Anzeige
AW: Mehrfachauswahl der Listbox in Zeile eintragen.
09.01.2012 06:05:00
Hajo_Zi
If Listbox"" Then
'zeile = zeile + 1
if .Cells(zeile, "A") ="" Then
.Cells(zeile, "A") = ListBox2.List(i)
else
.Cells(zeile, "A") = .Cells(zeile, "A") & "," &ListBox2.List(i)
end if
else
.Cells(zeile, "A") ="keine"
End if
Gruß Hajo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mehrfachauswahl der Listbox in Zeile eintragen


Schritt-für-Schritt-Anleitung

Um eine Listbox für Mehrfachauswahl in Excel zu erstellen und die ausgewählten Werte in einer Zelle einzutragen, folge diesen Schritten:

  1. Erstelle eine Userform in Excel und füge ein Listenfeld (ListBox) hinzu.
  2. Fülle die ListBox mit Werten aus einer Tabelle.
  3. Füge einen Button hinzu, um die Auswahl zu bestätigen.
  4. Schreibe den VBA-Code für den Button, um die ausgewählten Werte in eine Zelle einzutragen:
Private Sub CommandButton3_Click()
    Dim i As Long, zeile As Long
    With Worksheets("test")
        ' erste leere Zeile ermitteln
        zeile = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        For i = 0 To ListBox2.ListCount - 1
            If ListBox2.Selected(i) = True Then
                If .Cells(zeile, "A") = "" Then
                    .Cells(zeile, "A") = ListBox2.List(i)
                Else
                    .Cells(zeile, "A") = .Cells(zeile, "A") & "," & ListBox2.List(i)
                End If
            End If
        Next i
        ' Wenn nichts ausgewählt wurde
        If .Cells(zeile, "A") = "" Then
            .Cells(zeile, "A") = "keine"
        End If
    End With
End Sub
  1. Teste die Anwendung, indem Du mehrere Einträge in der Listbox auswählst und den Button klickst.

Häufige Fehler und Lösungen

  • Fehler: Leere Zelle wird nicht mit "keine" gefüllt
    Lösung: Stelle sicher, dass die Logik zur Überprüfung der leeren Zelle korrekt implementiert ist. Der Code sollte die Bedingung für If .Cells(zeile, "A") = "" enthalten.

  • Fehler: Werte werden nicht korrekt in einer Zelle angezeigt
    Lösung: Überprüfe, ob die Bedingung für das Hinzufügen von kommagetrennten Werten richtig gesetzt ist. Achte darauf, dass der Code den bestehenden Wert in der Zelle korrekt aktualisiert.


Alternative Methoden

Eine alternative Methode zur Handhabung einer Mehrfachauswahl in einer Zelle könnte die Verwendung eines Dropdown-Menüs sein, das ebenfalls mehrere Auswahlen zulässt. Dazu kannst Du die Datenüberprüfung in Excel nutzen, um eine Dropdown-Liste zu erstellen, die mehrere Werte in einer Zelle speichert.


Praktische Beispiele

Hier ist ein Beispiel für die Anwendung des Excel Listenfelds für Mehrfachauswahl:

  • Stelle Dir vor, Du hast eine Liste von Obstsorten in einer Tabelle und möchtest den Benutzer auswählen lassen, welche Früchte er mag. Die Auswahl wird dann in einer Zelle eingetragen, z.B. "Äpfel, Bananen, Kirschen".
  1. Erstelle eine neue Userform mit einer ListBox und fülle sie mit den Obstsorten.
  2. Der oben angegebene VBA-Code kann direkt verwendet werden, um die Auswahl in eine Zelle zu übertragen.

Tipps für Profis

  • Nutze Datenüberprüfungen in Kombination mit Listenfeldern, um die Benutzererfahrung zu verbessern.
  • Berücksichtige die Verwendung von Formatierungsregeln, um die Zellen, die mehrere Werte enthalten, visuell hervorzuheben.
  • Experimentiere mit VBA-Funktionen, um das Verhalten der Listbox weiter anzupassen und die Zellverknüpfung zu optimieren.

FAQ: Häufige Fragen

1. Wie kann ich die Listbox mit Werten aus einer Tabelle füllen?
Du kannst die Listbox im UserForm_Initialize-Ereignis mit einer Schleife füllen, die durch die Zellen der Tabelle iteriert.

2. Ist es möglich, eine Listbox in einer Zelle anzuzeigen?
Ja, Du kannst ein Dropdown-Menü in einer Zelle erstellen, das eine Mehrfachauswahl ermöglicht, indem Du VBA zusammen mit Datenüberprüfungen verwendest.

3. Wie kann ich die Auswahl speichern, wenn ich die Userform schließe?
Du kannst die Auswahl in einer globalen Variablen speichern oder die Werte direkt in die Zelle eintragen, bevor die Userform geschlossen wird.

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