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

Forumthread: Listbox mit Checkboxen

Listbox mit Checkboxen
22.10.2015 14:21:53
yummi
Hallo Zusammen,
ich habe mir ein Userform mit einem ListBox Element gebastelt.
Multiselect steht auf 1
Liststyle ebenfalls 1 (dadurch werden mir die Checkboxen für jede Zeile angezeigt)
Jetzt habe ich mir eine zusätzliche Checkbox genommen um alle Einträge zu selektieren bzw. zu deselektieren. Das klappt auch alles ohne Probleme.
Meine Frage jetzt: Ist es möglich, das die selektierten Einträge nur durch den Haken in der Checkbox gekennzeichnet werden und nicht noch komplett blau hinterlegt sind?
Wenn ja, was muss dafür eingestellt werden bzw. was gecodet?
Mein verwendeter Code dafür sieht so aus:

Private Sub CheckBoxAlle_Click()
Dim i As Long
For i = 0 To Me.ListBoxFzg.ListCount - 1
Me.ListBox1.Selected(i) = Me.CheckBoxAlle.Value
Next i
End Sub
Private Sub UserForm_Initialize()
Dim llast As Long
Dim i As Long
Initialisiere    'Hier wird wksDaten gesetzt
llast = wksDaten.Cells(wksDaten.Rows.Count, 1).End(xlUp).row
For i = 2 To llast
Me.ListBox1.AddItem (wksDaten.Cells(i, 1).Value)
Me.ListBox1.Selected(i - 2) = True
Next i
End Sub
Danke für Eure Ideen und Hinweise
yummi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit Checkboxen
22.10.2015 16:04:25
daniel
HI
soweit ich weiss, ist diese Färbung ne Windows-Systemeinstellung und über Excel-VBA nicht so ohne weiteres änderbar.
mögliche Workarounds wären, dass du zwei Listboxen erstellst.
in der ersten Listbox setzt du die ColumnWidht auf 1, dann werden nur die Boxen angezeigt und es erscheinen keine Scrollbars, wenn du diese Listbox schmal machst.
in der zweiten Listbox lässt du dann die Texte anzeigen, ohne die Häkchen.
die grosse Listbox sperrst du für den Anwender, so dass dieser hier nichts klicken kann, alternativ müsstest du hier einen Code hinterlegen, welcher ermittelt, welche Zeile angeklickt wurde und dann in der ersten Listbox entsprechend die Häkchen setzt oder löscht.
einziges Problem an der Sache ist, dass Listboxen mit und ohne die Häkchen bei gleichem Schriftgrad unerschiedliche Zeilenhöhen haben, so das es schwierig werden würde, die Texte mit den Häkchen auf gleiche Höhe zu bringen, weil sich die Schriftgrade auch nur grob in ganzen Zahlen eingeben lassen.
Gruß Daniel

Anzeige
AW: Listbox mit Checkboxen
23.10.2015 10:42:30
yummi
Hallo Daniel,
danke für deine Ideen, ich werde das mal versuchen, aber ich glaube einfacher wird es den Kunden davon zu überzeugen, dass blau eine schöne Farbe ist ;-)
Danke
yummi

AW: Listbox mit Checkboxen
23.10.2015 10:49:48
Daniel
Hi
so sollte das auch sein.
Excel ist für arbeiten, wer schöne tolle Optik braucht, sollte sich was anderes suchen.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Listbox mit Checkboxen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Listbox mit Checkboxen in einem Excel Userform zu erstellen, folge diesen Schritten:

  1. Userform erstellen: Öffne den VBA-Editor (Alt + F11) und füge eine neue Userform hinzu.
  2. Listbox hinzufügen: Ziehe eine Listbox auf die Userform. Stelle die Eigenschaften der Listbox wie folgt ein:
    • MultiSelect: Setze auf 1 - fmMultiSelectMulti.
    • ListStyle: Setze auf 1 - fmListStyleOption.
  3. Checkbox hinzufügen: Füge eine Checkbox hinzu, um alle Einträge auszuwählen oder abzuwählen.
  4. Code hinzufügen: Füge den folgenden VBA-Code in das Userform-Modul ein:
Private Sub CheckBoxAlle_Click()
    Dim i As Long
    For i = 0 To Me.ListBox1.ListCount - 1
        Me.ListBox1.Selected(i) = Me.CheckBoxAlle.Value
    Next i
End Sub

Private Sub UserForm_Initialize()
    Dim llast As Long
    Dim i As Long
    ' Hier wird wksDaten gesetzt
    llast = wksDaten.Cells(wksDaten.Rows.Count, 1).End(xlUp).Row
    For i = 2 To llast
        Me.ListBox1.AddItem (wksDaten.Cells(i, 1).Value)
        Me.ListBox1.Selected(i - 2) = True
    Next i
End Sub
  1. Userform testen: Starte die Userform und teste die Checkbox, um alle Einträge auszuwählen.

Häufige Fehler und Lösungen

  • Problem: Die Listbox-Elemente sind blau hinterlegt, obwohl nur die Checkboxen ausgewählt werden sollen.

    • Lösung: Diese Färbung ist eine Windows-Systemeinstellung und kann über VBA nicht direkt geändert werden. Ein Workaround wäre, zwei Listboxen zu verwenden (eine für die Checkboxen und eine für die Texte).
  • Problem: Die Checkboxen erscheinen nicht.

    • Lösung: Stelle sicher, dass die ListStyle-Eigenschaft auf 1 - fmListStyleOption gesetzt ist.

Alternative Methoden

Falls Du eine Listbox mit Checkbox in MS Access benötigst, kannst Du das ms access multiselect listbox with checkbox-Steuerelement verwenden, das ähnliche Funktionen bietet. Die Implementierung ist jedoch anders, und Du müsstest die spezifischen Eigenschaften und Ereignisse von Access nutzen.

Eine andere Methode in Excel ist die Verwendung von ActiveX-Steuerelementen, um eine benutzerdefinierte Checkbox-Lösung zu erstellen, die möglicherweise mehr Flexibilität bietet.


Praktische Beispiele

Hier ist ein Beispiel, wie Du eine vba listbox with checkbox in einem Userform umsetzen kannst:

Private Sub UserForm_Initialize()
    Dim items As Variant
    items = Array("Item 1", "Item 2", "Item 3")

    For i = LBound(items) To UBound(items)
        Me.ListBox1.AddItem items(i)
        Me.ListBox1.Selected(i) = False
    Next i
End Sub

In diesem Beispiel wird eine einfache Listbox mit drei Einträgen gefüllt, ohne dass sie vorausgewählt sind.


Tipps für Profis

  • Nutze die vba listbox selected item, um die aktuell ausgewählten Elemente effizient zu verarbeiten.
  • Um die Werte der ausgewählten Checkboxen zu speichern, kannst Du eine Schleife verwenden, um die vba listbox value of selected item abzufragen.
  • Experimentiere mit der excel multiselect checkbox-Funktionalität, um eine benutzerfreundliche Oberfläche zu erstellen.

FAQ: Häufige Fragen

1. Wie kann ich die Auswahl der Listbox-Elemente speichern?
Du kannst die ausgewählten Elemente in einer Variablen oder in einer Excel-Tabelle speichern, indem Du durch die Listbox iterierst und die ausgewählten Werte abfragst.

2. Ist es möglich, die Listbox in einer bestimmten Excel-Version zu verwenden?
Ja, die oben beschriebenen Schritte und Codes funktionieren in den meisten modernen Excel-Versionen, die VBA unterstützen (Excel 2007 und höher).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige