ich möchte gerne 5000 Checkboxen in eine Excelzelle schreiben (Teil 1) und jede soll dann bei Aktivierung das gleiche Makro ausführen (Teil 2).
Teil 1 habe ich hinbekommen. Das Beispiel für 25 Checkboxen hänge ich unten an.
Bei Teil 2 bin ich ratlos. Da ich nicht jede Checkbox1_Click() bis Checkbox5000_Click() als Code schreiben möchte, benötige ich eine Definition als Klasse. (glaube ich zumindest). Damit bin ich aber maßlos überfordert.
Ich möchte gerne, dass beim Anklicken der Checkbox folgendes passiert:
- bei Aktivierung: nix
- bei Deaktivierung: schreiben von "text" in die danebenliegende Zelle
Kann mir jemand bei der Definition der Klasse helfen?
Danke!
hier noch der Code für die 25 Checkboxen, wie es bisher definiert war:
Sub CheckboxenSetzen()
Dim zeile As Integer
Dim pfad1 As Worksheet
Set pfad1 = ThisWorkbook.Worksheets("Tool")
For zeile = 2 To 26
' CheckBox in Spalte "S" einfügen
With Range("S" & zeile + 1)
' Add Method (OLEObjects Collection):
' Adds a new OLE object to a sheet. Returns an OLEObject object
Set objCheckbox = pfad1.OLEObjects.Add _
(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=798, Top:=.Top + 2.5, Width:=34.5, _
Height:=10)
End With
objCheckbox.LinkedCell = "$R$" & zeile + 1 'verlinken
pfad1.OLEObjects("Checkbox" & zeile).Object.Caption = "" 'Name nicht _
anzeigen
pfad1.OLEObjects("Checkbox" & zeile).Object.BackStyle = fmBackStyleTransparent ' _
Transparent machen
objCheckbox.Object.Value = False ' _
Deaktivieren
Next zeile
End Sub