im Zuge meines Versuches jmdm. in einem anderen Forum dabei zu helfen in einer Spalte ca. 90 Checkboxen per Vba zu erstellen stiess ich auf sehr unerwartete Schwierigkeiten.
Ich bekam es hin, daß die ca. 90 Checkboxen erstellt werden, aber sie sind schon mit einem Häkchen vorbelegt, daß auch noch angegraut ist.
Funktionieren tun sie, aber ich hätte sie gerne nach der Erstellung unangekreuzt.
Weiterhin braucht der Code m.E. sehr lange für die paar Checkboxen, wie kann ich den Code beschleunigen?
Sie werden in jeder Zelle von D3:D89 erstellt. Die LinkedCell jeder Checkbox ist die Zelle in der sie steht.
Versuche mit .Value=False in der "With S" Schleife schlugen fehl.
Haltepunkte in der genannten Schleife zu setzen schlugen auch fehl, Meldung "Zu diesem Zeitpunkt kann nicht in den Haltemodus gewechselt ewerden" o.ä.
Dabei hatte ich mit dem Haltepunkt die Hoffnung, über Ansicht--Lokalfenster mich dem Value der jeweiligen Checkbos anzunähern, also wie ich das referenziere o.ä.
Hier der Code:
Sub Kontroll()
Dim S As Object, Zei As Long, L, T, W, H, m
Application.ScreenUpdating = False
Columns(4).ClearContents
For Each S In ActiveSheet.Shapes
If S.Name Like "myKontroll*" Then S.Delete
Next S
L = Range("D1").Left
W = 14
H = 14
For Zei = 3 To 89
T = Range("D" & Zei).Top
Set S = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=L, Top:=T, Width:=W, Height:=H)
With S
'.Verb Verb:=xlPrimary
.Name = "myKontroll" & Zei
.LinkedCell = "D" & Zei
End With
Next Zei
Application.ScreenUpdating = True
End Sub
Danke und Gruß
Reinhard