Wie bekomme ich die Checkbox mit vba code zentriert hin? Blöde Frage, ich weiss, aber ich krieg es a

Derzeit wird die Box oben links in den Zellen angezeigt.Die soll aber mittig stehen! :frowning:
Dies ist der Code
Private Sub CheckBox1_Click()
Option Explicit

Sub Kontroll()
Dim CB As Object, Zeile As Long
Dim Links, Hoehe, Breite
For Each CB In ActiveSheet.Shapes
If CB.Name Like „Check*“ Then CB.Delete
Next CB
Breite = 12
Hoehe = 12
For Zeile = 1 To 100
Links = Range(„P2“).Left + 5
Oben = Range(„P“ & Zeile).Top
Set CB = ActiveSheet.OLEObjects.Add(ClassType:=„Forms.CheckBox.1“, Link:=False, _
DisplayAsIcon:=False, Left:=Links, Top:=Oben, Width:=Breite, Height:= _
Hoehe)
With CB.Object
.Caption = „Erledigt“
End With
Next Zeile
End Sub

Hallo Natty,
gönn dir für Links folgenden Code:
Links = Range(„P2“).Left + (Range(„P2“).Width) / 2 - 4

viel Erfolg!

Hallo,
mit dem Befehl
With Selection
.VerticalAlignment = xlCenter
End With kannst Du nach vorheriger Markierung setzen auf die Checkbox die Zentrierung hin bekommen.
bsp:
checkbox1.select
with selection
.verticalallignment = xlCenter
end with

liebe Grüße

Stephan

Na, das war mal einfach und kurz. Ganz herzlichen Dank!
Sieht schon viel besser aus!
Schönes Wochenende!!!
Natty

Hi,

sorry, ich hatte da wohl etwas überlesen :wink:

Liegt vielleicht auch daran dass ich Dir vermutlich nicht wirklich helfen kann.

Was du versuchen kannst (wenn nicht längst geschehen: den Anker (Anchor) bei den Eigenschaften so einstellen wie benötigt -> vielleicht klappt es damit, ansonsten anhand der Form - Größe die Mitte ausrechnen und die Checkbox dorthin positionieren.

Hallo alle zusammen,

ich habe eure Infos gelsen bekomme es aber bei mir nicht hin.
hier mein Code:

Set objOLEObject = ws.OLEObjects.Add(ClassType:=„Forms.OptionButton.1“, Left:=n.Left, Top:=n.Top, Width:=n.Width - 0.5, Height:=n.Height - 0.5)
objOLEObject.Placement = xlMoveAndSize
objOLEObject.Name = „OptionButton“ & i & „1“
objOLEObject.LinkedCell = n.Address
objOLEObject.Object.Value = False
objOLEObject.Object.Caption = „“
objOLEObject.Object.BackStyle = 0
objOLEObject.Object.GroupName = ws.Name & CStr(i)

Was mache ich falsch?

please help me :slight_smile: