1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallöle,

ich habe in einer Excel Tabelle über ein Makro eine Rücksetzfunktion für die Eingaben erstellt. Jetzt habe ich
einige Eingabefelder durch Klickboxen ersetzt. Wie bekomme ich diese, da Sie ja keine Zellbezeichnungen haben, in das Rücksetzmakro integriert.

Vielen Dank schon mal für Eure Hilfe

Gruß Andy

6 Antworten

0 Punkte
Beantwortet von
Hallöle,

was sind "Klickboxen"?
OptionsButtons aus der Steuerelement-Toolbox (CommandBars("Control Toolbox")) oder
CheckBoxen aus der Steuerelement-Toolbox oder
Optionsfelder aus den Formular-Elementen (CommandBars("Forms")) oder
Kontrollkästchen aus den Formular-Elementen?

Es dürfte zwar bei allen Elementen die Value-Eigenschaft sein, die zurückgesetzt werden muss, siehe VBA-Hilfe:

Kontrollkästchen:
Ein ganzzahliger Wert, der anzeigt, ob das Element ausgewählt ist.
Null Zeigt an, dass das Element in einem Nullzustand ist, es wurde also weder ausgewählt, noch wurde die Auswahl aufgehoben.
-1 True. Element ist ausgewählt.
0 False. Die Auswahl dieses Elements ist aufgehoben.

Optionsfeld:
Siehe Kontrollkästchen.

..., aber das Auswählen/Ansprechen der Elemente und die Syntax sind etwas verschieden.

Ich hoffe, ich konnte einen Hinweis geben.

MfG Charlotte
0 Punkte
Beantwortet von
Hallo Charlotte,

bin über die Symbolleiste "Formular" gegangen und habe dann "Kontrollkästchen" ausgewählt. Danke für den Tip mit der
VBA Hilfe.
Mach mich mal auf die Suche!!

Schönen Tag noch
mfg
Andy
0 Punkte
Beantwortet von
Hallo Andy,

als kleine Hilfe für den Start, denn der Umgang mit diesen oder jenen Elementen ist manchmal nicht ganz so einfach. Man will ja schließlich wissen, "mit wem" man es zu tun hat:

Sub Formularelemente_Namen()
Dim formularelement As Variant

'For Each el In ActiveSheet.OptionButtons
' MsgBox formularelement.Name
'Next

For Each formularelement In ActiveSheet.CheckBoxes
MsgBox formularelement.Name
Next

End Sub
Und wenn's mit der VBA-Hilfe einschließlich der darin enthaltenen Code-Beispiele nicht mehr weitergeht, dann fragen.

MfG Charlotte
0 Punkte
Beantwortet von
Hallo Charlotte,

vielen Dank für Deine Tips!
Habe heute aber zum erstenmal von VBA gehört.
Habe bis jetzt meine kleinen Excel Probleme sagen wir mal eher "Hand bei Fuß" und mit Monsterformeln gelöst.

Anbei kommt das Makro das ich bis jetzt benutzt habe (kommt nicht von mir) und welches auch funktioniert. Dannach habe ich einfach mal Deine Codes eingefügt.

Private Sub CommandButton1_Click()
Range( _
"C3,E7,E9,E11,G15:G22,G24,J7,J9,J11,L15:L21,O7,O11,Q15:Q20,T7,T9,T11,V15,V16,V17,V18" _
).Select
Range("V18").Activate
Selection.ClearContents
Range("E7").Select
End Sub

Sub Formularelemente_Namen()
Dim formularelement As Variant
´For Each el In ActiveSheet.OptionsButtons

´ MsgBox formularelement.Name
´Next

For Each formularelement In ActiveSheet.CheckBoxes
Msg Box formularelement.Name
Next

End Sub


Bei der Eingabe wurde von VBA folgende Fehler angezeigt.

- Zeile: ´For Each el.... wird "Each" markiert und es kommt folgende Fehlermeldung "Fehler beim Kompilieren" "Erwartet : Ausdruck"

- Zeile ´MSG Box formularelement.... wird "formularelement" markiert und es kommt folgende Fehlermeldung "Fehler beim Kompilieren "Erwartet : Anweisungsende"

Kannst Du damit etwas anfangen!

Sorry, bin wirklich dabei ein absolutes Greenhorn und mit der VBA Hilfe komme ich gar nicht weiter. Wäre super wenn Du auch noch weiterhin lust hättest dich mit meinem Problem zu beschäftigen.

Danke Andy
0 Punkte
Beantwortet von
Hallo Andy,

da ist mir im oberen Teil leider ein kleiner Fehler beim Kopieren passiert. Da man möglichst immer "sprechende Bezeichner" wählen sollte, ich die Formularelemente in meinem Test aber nur mit el bezeichnet hatte, habe ich sie dann fast alle noch umbenannt, bis auf eins. Es muss also statt el auch an dieser Stelle heißen:

For Each formularelement In ActiveSheet.OptionButtons

Sub Formularelemente_Namen()
Dim formularelement As Variant

'For Each formularelement In ActiveSheet.OptionButtons
' MsgBox formularelement.Name
'Next

For Each formularelement In ActiveSheet.CheckBoxes
MsgBox formularelement.Name
Next

End Sub
Das kann jedoch nicht die beiden Fehler auslösen, die Du beschreibst, denn eigentlich sollten die 3 Code-Zeilen, die mit einem Apostroph beginnen, auskommentiert, also für den VBA-Interpreter gar nicht da sein.

1. Versuch: Überschreibe die mit dem Code kopierten eventuell falschen Apostrophs durch neu eingetippte richtige Apostrophs (auf der dt. Tatstatur: UMSCHALT + #).

2. Versuch: Lösche die 3 Code-Zeilen, die mit einem Apostroph beginnen, sie haben auch mit richtigen Apostrophs zurzeit keine Funktion.

MfG Charlotte
0 Punkte
Beantwortet von
Hallo Charlotte,

vielen Dank, wer lesen kann, ist deutlich im Vorteil. Habe statt Apostroph ein Accent verwendet.

So jetzt bekomme ich auch keine Fehlermeldung mehr.

Leider löscht das Makro immer noch nur die Standard Zellen und nicht die "Kontrollkästchen".

Ich werde mal morgen oder am Montag weiter dannach schauen und geh jetzt nach hause.

Danke Dir nochmals ganz doll für Deine Hilfe.

Wünsche Dir noch ein schönes Wochenende

Gruß Andy
...