Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Frage zur Checkbox
#1
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
Antworten Top
#2
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.
Gruß Jonas
Antworten Top
#3
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
Antworten Top
#4
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Ich hatte vor geraumer Zeit mal eine Alternative vorgestellt:
http://www.clever-excel-forum.de/Thread-...mal-anders
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste