5.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo
Habe mir folgendes Makro aus dem Internet Kopiert.

Option Explicit

Private Sub CommandButton1_Click()
Dim Zelle As Range
For Each Zelle In Selection
With ActiveSheet.CheckBoxes.Add(Zelle.Left + Zelle.Width / 2 - 8, _
Zelle.Top, Zelle.Width, Zelle.Height)
.Caption = ""
.LinkedCell = Zelle.Offset(, 1).Address
End With
Next
End Sub

Läuft einwandfrei, ich möchte erreichen das über einen Zweiten CommandButton

Alle Kontrollkästchen aktiviert und bei wiederholten anklicken
deaktiviert werden.

Besten dank an alle die sich um mein Problem kümmern!

Mit freundlichen Grüßen
Hans

24 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Eric,

ich hatte das eigentlich eindeutig geschrieben und auch noch eine Erläuterung hinzugesetzt. Ich kann es aber gerne noch einmal wiederholen:

1. im UserForm läuft der Code nicht, weil man dort kein Steuerelement als CheckBox deklarieren kann. Deshalb wird ein Kompilierungsfehler ausgegeben.

2. im Codemodul des Tabellenblattes läuft der Code, weil man auch ein Tabellenblatt mit "Me" ansprechen kann, wenn der Code z.B. einem ActiveX-Steuerelement oder auch einem Ereignis des Tabellenblattes zugewiesen ist.

3. in einem allgemeinen Modul funktioniert er nicht, weil es dort kein "Me" gibt, auf das er sich beziehen kann. Das hatte ich aber auch nicht behauptet


Wenn bei dir mit dem Code
ActiveSheet.CheckBoxes.Count

die falsche Anzahl ausgegeben wird, dann verwendest du ActiveX-Steuerelemente. Der Fragesteller verwendet jedoch Formular-Steuerelemente. Formular-Steuerelemente kann man direkt mit dem Typ ansprechen, also CheckBoxes, und es werden dann auch nur diese Elemente gezählt, gleichgültig ob noch andere Formularsteuerelemente (Schalter, Listenfeld, Kombinationsfeld usw.) vorhanden sind.

ActiveX-Steuerelemente dagegen werden anders angesprochen, z.B. mit OLEObjects:
ActiveSheet.OLEObjects.Count

wobei man damit ActiveX-Steuerelemente nur allgemein ansprechen kann, es würden also CheckBoxen, CommandButton usw. ebenfalls mit gezählt. In dem Fall müsste man zuerst in einer Schleife den Typ abfragen und dabei entsprechend zählen.

Bis später,
Karin
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Das alles will ich der Form wegen bestätigen, es ist mir so weit auch geläufig.

Die Mappe die mir die Null geliefert hat benutze ich zum wilden Drauflostesten. Da kanns absolut sein, dass ich damals die ›falschen‹ Checkboxen erwischt hatte. ;-)

Eric March
0 Punkte
Beantwortet von
Also wars eben nicht dein code. toll wäre wenn sich leutz die eh nur
rumraten aus anfragen raushalten wo se eh nix bewirken.
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Lies doch bitte mal mein erstes Posting hier durch - und dann was man mit mir so getrieben hat bevor du Ohrfeigen verteilst, ja?
Die Ausgelobte Lösung scheitert beispielsweise an meiner Frage.

Und da ich von die hier gar kein Posting sehe was der Lösung gedient haben könnte betrachte ich deine Nummer 23 schlicht als unverschämt.

Eric March
...