Discussion:
Checkbox in Excel-Zelle einfügen
(zu alt für eine Antwort)
ThomasW
2006-03-02 06:28:18 UTC
Permalink
Hallo,

ist es in Excel 2003 SP1 möglich, in eine Zelle für einen Boole'schen Wert
(Ja/Nein) eine Checkbox (Kontrollkästchen) einzufügen? Falls ja - wie geht
das?

Danke für alle guten Tips.

Thomas
unknown
2006-03-02 07:05:39 UTC
Permalink
Hallo Thomas,
für eine boolsche Auswertung eignet sich eher das Optionsfeld. Egal,
ob du nun das Optionsfeld oder das Kontrollkästchen wählst du kannst
diese Steuerelemente aus der Symbolleiste Steuerelement-Toolbox in das
Tabellenblatt ziehen, mit Eigenschaften versehen und anwenden. Die
Größe des Steuerelements lässt sich mit Hilfe der Alt-Taste an den
Rändern einer Zelle/eines Zellbereiches anpassen.

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Website: http://www.xl-faq.de
# Auftragsprojekte#
Wolfgang Habernoll
2006-03-02 23:12:26 UTC
Permalink
Hallo Thomas

muss es eine Checkbox sein ?. Ein Boole'scher Wert in einer Zelle ist "WAHR"
oder "FALSCH" . Wenn dir das genügt, schreibe in beliebige Zellen der Tabelle
einmal WAHR oder FALSCH und kopiere dieses kleine Makro im VBE in die
entsprechende Tabelle. Nu kannst du mit DoubleClick in der Zelle den Wert
umschalten.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If VarType(Target) = vbBoolean Then Target = Not Target
Application.SendKeys "{ESC}"
End Sub

mfG
Wolfgang Habernoll
Post by ThomasW
Hallo,
ist es in Excel 2003 SP1 möglich, in eine Zelle für einen Boole'schen Wert
(Ja/Nein) eine Checkbox (Kontrollkästchen) einzufügen? Falls ja - wie geht
das?
Danke für alle guten Tips.
Thomas
Thomas Ramel
2006-03-03 05:50:05 UTC
Permalink
Grüezi Wolfgang

Wolfgang Habernoll schrieb am 03.03.2006
Post by Wolfgang Habernoll
muss es eine Checkbox sein ?. Ein Boole'scher Wert in einer Zelle ist "WAHR"
oder "FALSCH" . Wenn dir das genügt, schreibe in beliebige Zellen der Tabelle
einmal WAHR oder FALSCH und kopiere dieses kleine Makro im VBE in die
entsprechende Tabelle. Nu kannst du mit DoubleClick in der Zelle den Wert
umschalten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If VarType(Target) = vbBoolean Then Target = Not Target
Application.SendKeys "{ESC}"
End Sub
Das ist ebenfalls eine gute Variante - gerade die VarType()_Prüfung gefällt
mir gut.

Was mich hier ein wenig stört ist die Verwendung des pösen SendKeys.

Um das direkte Bearbeiten der Zelle zu unterbinden bringt die
Ereignis-Prozedur zweiten Parameter mit. Es reicht also anstelle der
SendKeys-Anweisung die folgende Zeile:

Cancel = True



Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Wolfgang Habernoll
2006-03-03 22:03:29 UTC
Permalink
Hallo Thomas

danke für deine Antwort...den ThomasW scheint das Theme ja nicht mehr zu
interessieren. Das man die Verwendung von SendKeys vermeiden sollte wußte ich
schon, mir fiel aber nichts besseres ein da ich den Sinn des Cancel-Parameter
nicht kannte. Nun hab ich auch wieder etwas dazugelernt. Nun korregiere ich
den Code noch mal, damit sich alle anderen Zellen bei BeforeDoubleClick
"normal" verhalten
Post by Thomas Ramel
Grüezi Wolfgang
Wolfgang Habernoll schrieb am 03.03.2006
Post by Wolfgang Habernoll
muss es eine Checkbox sein ?. Ein Boole'scher Wert in einer Zelle ist "WAHR"
oder "FALSCH" . Wenn dir das genügt, schreibe in beliebige Zellen der Tabelle
einmal WAHR oder FALSCH und kopiere dieses kleine Makro im VBE in die
entsprechende Tabelle. Nu kannst du mit DoubleClick in der Zelle den Wert
umschalten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If VarType(Target) = vbBoolean Then Target = Not Target
Application.SendKeys "{ESC}"
End Sub
Das ist ebenfalls eine gute Variante - gerade die VarType()_Prüfung gefällt
mir gut.
Was mich hier ein wenig stört ist die Verwendung des pösen SendKeys.
Um das direkte Bearbeiten der Zelle zu unterbinden bringt die
Ereignis-Prozedur zweiten Parameter mit. Es reicht also anstelle der
Cancel = True
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Wolfgang Habernoll
2006-03-03 22:26:43 UTC
Permalink
Hallo Thomas

danke für deine Antwort...
den ThomasW scheint das Thema ja nicht mehr zu interessieren.
Das man die Verwendung von SendKeys vermeiden sollte wußte ich
schon, mir fiel aber nichts besseres ein da ich den Sinn des Cancel-Parameter
nicht kannte, habe damit auch wieder etwas dazugelernt

Nun korrigiere ich den Code noch mal, damit sich alle anderen Zellen bei
BeforeDoubleClick "normal" verhalten (Cancel noch hinters If)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If VarType(Target) = vbBoolean Then Target = Not Target: Cancel = True
End Sub

mfG
Wolfgang Habernoll
Post by Thomas Ramel
Grüezi Wolfgang
Wolfgang Habernoll schrieb am 03.03.2006
Post by Wolfgang Habernoll
muss es eine Checkbox sein ?. Ein Boole'scher Wert in einer Zelle ist "WAHR"
oder "FALSCH" . Wenn dir das genügt, schreibe in beliebige Zellen der Tabelle
einmal WAHR oder FALSCH und kopiere dieses kleine Makro im VBE in die
entsprechende Tabelle. Nu kannst du mit DoubleClick in der Zelle den Wert
umschalten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If VarType(Target) = vbBoolean Then Target = Not Target
Application.SendKeys "{ESC}"
End Sub
Das ist ebenfalls eine gute Variante - gerade die VarType()_Prüfung gefällt
mir gut.
Was mich hier ein wenig stört ist die Verwendung des pösen SendKeys.
Um das direkte Bearbeiten der Zelle zu unterbinden bringt die
Ereignis-Prozedur zweiten Parameter mit. Es reicht also anstelle der
Cancel = True
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2000 SP-3]
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Loading...