Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Leeren von Kontrollkästchen über Makro
28.03.2018 16:54:33
Kontrollkästchen
Hallo zusammen,
wir haben ein Excel Formular, welches mit Daten von unseren Kollegen gefüllt wird.
Nachdem alles ausgefüllt und gespeichert wurde, soll das Formular in gewissen Zellen geleert _
werden. Das leeren der Zellen haben wir gut mit dem Befehl
Sub leeren() hinbekommen.
Der Code sieht (gekürzt) so aus:

Sub leeren()
Range("B5").Select
Selection.ClearContents
Range("B6").Select
Selection.ClearContents
Range("B7").Select
Selection.ClearContents
Range("B8").Select
Selection.ClearContents
Range("B10").Select
End Sub
In dem Formular befinden sich allerdings auch Kontrollkästchen die angeklickt werden können. Diese haben dann nur einen Hacken drin. Wie bekommen wir es hin, dass auch diese Hacken aus den Kontrollkästchen gelöscht werden?
Viele Grüße und besten Dank
Matthias

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leeren von Kontrollkästchen über Makro
28.03.2018 16:57:40
Kontrollkästchen
Halo Matthias,
es reicht
Range("B5:B8").ClearContents
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.
Combobox1.value=False

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Leeren von Kontrollkästchen über Makro
28.03.2018 17:02:55
Kontrollkästchen
Hallo Matthias,
und zu den Kontrollkästchen:
Rechtsklick auf dein Kontrollkästchen - Steuerelement formatieren - Zellverknüpfung
dort dann eine Zelle aus einem freien Bereich deines Tabellenblattes eintragen - für jedes Kontrollkästchen eine eigene Zelle (die Spalte in der sich diese Zellen befinden kannst du dann ja ausblenden)
Wenn ein Kontrollkästchen angeklickt wird, dann wird in der entsprechend verknüpften Zelle WAHR ausgegeben, wird der Haken entfernt wird in der Zelle FALSCH ausgegeben.
Wenn du jetzt in deinem Code einfach diesen Zellbereich leerst (mit ClearContents) wie bei den anderen Zellen auch, dann wird der Haken aus den Kontrollkästchen entfernt.
Gruß Werner
Anzeige
AW: Leeren von Kontrollkästchen über Makro
29.03.2018 09:05:33
Kontrollkästchen
Hallo Werner,
vielen Dank für Deine Hilfe! Es funktioniert. So simpel :-)
Danke
Matthias
Gerne u. Danke für die Rückmeldung. o.w.T.
29.03.2018 09:13:13
Werner
AW: dim Cbx
28.03.2018 17:11:25
Fennek
Hallo,
wenn nur der Wert zurückgesetzt werden soll:

sub F_en()
dim Cbx as Checkbox
for each Cbx in activesheet.CheckBoxes
Cbx.value = false
next Cbx
end sub
mfg
(getestet, aber code abgeschrieben)
AW: oder WS.CheckBoxes = false owT
28.03.2018 17:15:49
Fennek
alle auf einmal
AW: Leeren von Kontrollkästchen über Makro
28.03.2018 17:11:52
Kontrollkästchen
Hi
wenn nicht bereits schon geschehen, verknüpfe die Kontrollkästchen über deren Eigenschaften mit einer Ausgabezelle.
dann reicht es aus, wenn du dann diese Zelle ebenfalls mit .ClearContents löschst.
(alles andere liegt deutlich über euren Programmierkenntnissen)
kleiner Tip nocht, das .Select/Selection ist unnötig.
der Recorder zeichnet es zwar auf, weil wir als Mausschubser so arbeiten, aber das Makro braucht es nicht.
Range("B5").ClearContents 

funktioniert auch und ist viel schneller.
Wenn du zusammenhängende Zellbereiche hast, musst du nicht jede Zelle einzelen löschen (machst du normal ja auch nicht), sondern erst möglichst viel auswählen und dann entfernen drücken:
Range("B5:B8,B10").ClearContents

Gruß Daniel
Anzeige
noch ein Tip
28.03.2018 17:31:16
Daniel
markiere alle Zellen, die gelöscht werden sollen mit gedrückter STRG-Taste.
klicke dann ins Namensfeld (links oben, vor der Bearbeitungszeile) und gib den markierten Zellen einen Namen. (z.B. "xxx")
wenn du jetzt alle Zellen löschen willst, klickst du wieder in das Namensfeld auf den DropDownbutton.
Es sollte dann dein "xxx" erscheinen, wenn du dort draufklickst, sind die Zellen alle wieder selektiert und du brauchst nur noch ENTF zu drücken.
Vielleicht ist damit das Makro nicht mehr notwendig.
Aber auch für ein Makro ist das hilfreich, weil du nur noch
Range("xxx").ClearContents 

brauchst um alle Zellen zu löschen.
Weiterer Vorteil: dieses passt sich automatisch an, wenn du Zellen einfügst oder löschst.
wenn du bspw zwischen A und B noch eine Spalte einfügst, wandern ja die Eingebezellen von B nach C.
in deinem Code müsstest du jetzt den Code anpassen und alle "B" in "C" ändern.
Bei der Verwendung des Namens passt sich dieser automatisch an und der Code bleibt wie er ist.
Gruß Daniel
Anzeige

14 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige