Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen

Checkboxes erzeugen und positionieren

Betrifft: Checkboxes erzeugen und positionieren von: Tobi Winzer
Geschrieben am: 18.09.2014 10:25:30

Hallo,

ich möchte eine variable Anzahl an Checkboxes erzeugen und sie danach auch noch richtig positionieren.
Bei folgendem Code habe ich das Problem, dass alle Checkboxes die gleiche Caption haben:

For i = 1 To engctr

Dim PosiX As Single, PosiY As Single
' XY-Werte der Zellpositionen festlegen
PosiX = Cells(i + 25, 3).Left
PosiY = Cells(i + 25, 3).Top


With ActiveSheet.CheckBoxes
.Add(PosiX, PosiY, 72, 17.25).Select
.Caption = "Engine" & i

End With


Next

ich weiß, dass das an der Eigenschaft CheckBoxes hängt, aber ich habe keine Ahnung wie ich das anders schreiben kann. Die Caption sollte quasi "Engine1, Engine2, Engine3,...." sein.

Zweitranginges Problem:
Wie positioniere ich die Checkboxes zentral in den jeweiligen Zellen? Jetzt sind sie ja immer linksbündig. Leider hift mir die Excel-Hilfe nicht weiter bzw. ich bin zu doof, sie zu verstehen.

Danke im Voraus

  

Betrifft: AW: Checkboxes erzeugen und positionieren von: Rudi Maintaire
Geschrieben am: 18.09.2014 10:41:33

Hallo,

  For i = 1 To engctr
    ' XY-Werte der Zellpositionen festlegen
    PosiX = Cells(i + 25, 3).Left
    PosiY = Cells(i + 25, 3).Top
    Set myCHK = ActiveSheet.CheckBoxes.Add(PosiX, PosiY, 72, 17.25)
    myCHK.Caption = "Engine" & i
  Next
Gruß
Rudi


  

Betrifft: AW: Checkboxes erzeugen und positionieren von: Tobi Winzer
Geschrieben am: 18.09.2014 10:45:47

Wow, Vielen Dank!!

Könntest du mir vielleicht noch sagen, was die jeweiligen Argumente bei checkboxes.add bedeuten?
Dann kann ich sie nämlich alleine zentrieren


  

Betrifft: das steht in der Hilfe. owT von: Rudi Maintaire
Geschrieben am: 18.09.2014 10:47:04




  

Betrifft: AW: das steht in der Hilfe. owT von: Tobi Winzer
Geschrieben am: 18.09.2014 10:49:36

Und wie sind die Namen der Checkboxen mit dem ich sie ansprechen, checken etc kann?
Einfach durchnummeriert? Bzw. wie kann ich den Namen ändern?

mit myCHK.Name = "Engine" & i ?


  

Betrifft: teste doch einfach von: Rudi Maintaire
Geschrieben am: 18.09.2014 11:00:18




  

Betrifft: AW: Checkboxes erzeugen und positionieren von: Daniel
Geschrieben am: 18.09.2014 10:59:07

Hi

Punkt 1)
Setze die WITH-Klammer anders.
du willst ja nur die Caption des neu hinzugefügen Buttons ändern.

Puntk 2)
wenn du ein Objekt in der Zelle zentrieren willst, dann berechnest du den relevanten .Left-Wert nach folgenden Schema aus Postion und Breite (width):
Objekt.Left = Zelle.Left + (Zelle.Width - Objekt.Width) / 2
für den Top-Wert dann analog mit der Höhe .heigth

sieht als Code so aus:

Sub test()
Dim i As Long
Dim PosiX As Single, PosiY As Single

For i = 1 To 2


' XY-Werte der Zellpositionen festlegen
PosiX = Cells(i + 2, 3).Left + (Columns(3).Width - 72) / 2
PosiY = Cells(i + 2, 3).Top + (Rows(i + 2).Height - 17.25) / 2


With ActiveSheet.CheckBoxes.Add(PosiX, PosiY, 72, 17.25)
    .Caption = "Engine" & i
End With



Next


End Sub
wobei sich dieser Code bei der Ermittlung der Breite an der Gesamtbreite der Checkbox orientiert, also die von dir vorgegebne 72, die Checkbox und Caption umfasst.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Checkboxes erzeugen und positionieren"