Clever-Excel-Forum

Normale Version: Frage zur Checkbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excelprofis,

Ich habe eine Tabelle erstellt, welche in einer Spalte Checkboxen enthalten soll. Nun meine Frage. Ich möchte diese Checkboxen einzelnen Zellen zuordnen, damit ich diese im Nachgang auch filtern kann. Außerdem finde ich diese Checkbox viel zu klein und hoffe, dass man auch irgendwie die Größe bearbeiten kann. 

Am Anfang habe ich mit Kontrollkästchen gearbeitet. Das lief perfekt. Problem ist hier allerdings die Filterfunktion. Filtere ich nach angehakten Kästchen, werden diese zwar ordnungsgemäß angezeigt, aber die Leeren verschwinden nicht komplett und werden unten übereinander gelegt angezeigt. 

Mein momentaner VBA Code sieht so aus:
(bin leider völlig unerfahren was VBA betrifft)

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Range("D5").Value = 1
If CheckBox1.Value = False Then Range("D5").Value = 0
End Sub

Besten Dank für Eure Hilfe
Hallo,

für jeden Datensatz (resp. Zeile)  ein Steuerelement zu verwenden ist in den allermeisten Fällen nicht nötig und verlangsamt nur deine Datei. Verwende stattdessen lieber das Klick- oder Doppelklickevent der jeweiligen Zelle und lasse darüber ein "x" eintragen oder löschen.

Ein vernünfitges Handling sovieler Checkboxen würde ohne Klassen ohnehin nicht funktionieren.
Hallo Jonas,

Vielen Dank. Ich hatte so etwas auch schon probiert und folgenden Code benutzt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("C5:C100")) Is Nothing _
And Target.Count = 1 Then
If Target.Value = "X" Then
Target.Value = ""
Else: Target.Value = "X"
End If
End If
End Sub

Problem war hier, wenn ich dann das ganze Tabellenblatt markiere, bekomme ich immer einen Microsoft Visual Basic Laufzeitfehler 6 : Überlauf

Ist dann ein Fehler in der Formel. oder woran liegt das?

Danke und Gruß
Stefan
Moin Stefan!
Zitat:Problem war hier, wenn ich dann das ganze Tabellenblatt markiere, bekomme ich immer einen Microsoft Visual Basic Laufzeitfehler 6 : Überlauf

*Grins*
Habe gerade etwas Zeit, deshalb ausführlicher:
Wenn Du das gesamte Blatt markierst, sind dies
  • 2^20 aka 1.048.576 Zeilen und
  • 2^14 aka 16.384 Spalten
Die Multiplikation ergibt 2^20*2^14 = 2^34 =  17.179.869.184 markierte Zellen.

.Count übergibt einen Long-Wert: https://msdn.microsoft.com/de-de/library...e.15).aspx
Long ist begrenzt auf 2.147.483.647
https://de.wikibooks.org/wiki/VBA_in_Exc...ablentypen
Deshalb Überlauf!
Deshalb statt Target.Count Target.CountLarge
Dann hast Du einen Variant, der bis Fantastilliarden zählen kann ;)

Gruß Ralf
Ich hatte vor geraumer Zeit mal eine Alternative vorgestellt:
http://www.clever-excel-forum.de/Thread-...mal-anders