
Ich habe eine Tabelle in Excel, in der ich mehrere Elemente aus einer Dropdown-Liste in einer Zelle auswählen kann.
Jetzt muss ich mit meinem Makro alle Optionen einzeln auswählen und sie werden nacheinander zu einer Zelle hinzugefügt.
Gibt es eine Möglichkeit, ein Makro zu schreiben, das der Dropdown-Liste Kontrollkästchen hinzufügt, sodass ich die Elemente, die ich hinzufügen möchte, markieren kann und sie gleichzeitig hinzugefügt werden?
Antwort1
Ja, Sie können ein Formularlistenfeld hinzufügen und Mehrfachauswahlen zulassen.Überprüfe hierfür MS-Support.
VBA - prüfendieser Stackoverflow-Thread
Antwort2
Ok, ich habe diesen Code für die Listbox verwendet:
Dim lngItem As Long
Const strSep = ", " 'delimiter
Private Sub UserForm_Initialize()
With ListBox1
.RowSource = "=Sheet1!A2:A12"
For lngItem = 0 To ListBox1.ListCount - 1
.Selected(lngItem) = InStr(1, strSep & ActiveCell.Value & strSep, strSep & .List(lngItem, 0) & strSep)
Next lngItem
End With
End Sub
Private Sub CommandButton1_Click()
Dim strItems As String
With ListBox1
For lngItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lngItem) Then
strItems = strItems & strSep & ListBox1.List(lngItem, 0)
End If
Next lngItem
End With
With ActiveCell
.NumberFormat = "@"
.Value = Replace(strItems, strSep, "", 1, 1)
End With
Unload Me
End Sub
und dieses für die Spaltenauswahl:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Or Target.Row = 1 Then Exit Sub
UserForm1.Show
Cancel = True
End Sub
Es funktioniert super, aber ich möchte eine Sache ändern.
Momentan wird die Listbox nach einem Doppelklick auf die Zelle angezeigt. Gibt es eine Möglichkeit, sie mit nur einem Klick anzuzeigen? Kann man das auch so ändern, dass die Listbox immer unter der ausgewählten Zelle angezeigt wird?
Antwort3
Wenn Sie sich das angehängte Bild ansehen, werden Sie wissen, dass dies die perfekte Lösung ist. Verwenden von Kontrollkästchen in Listenfeldern.
Laden Sie den Code herunter: http://www.vlsiip.com/exceltips.html