Ckeckboxen zu Laufzeit erstellen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Ckeckboxen zu Laufzeit erstellen
von: Sönke Gilbrich
Geschrieben am: 07.03.2005 23:02:19
Hallo,
In einer Userform ist eine Checkbox.
Zum Beenden der Userform wird ein Button gedrückt. Zu diesem Zeitpunkt soll in einer bestimmten Zelle eine Checkbox erzeugt werden. Diese soll keine Beschriftung daneben haben und den Wert der Checkbox aus der Userform haben.
Kann man das über die Argumente beim erzeugen irgendwie steuern ob die box aktiviert ist oder nicht? Sie soll auch schreibgeschützt sein, weshalb ich DisplayAsIcon = TRUE gesetzt habe.
Wenn es einene einfacheren Weg gibt wär ich auch nicht böse ;)

Dim erschdatum, spieldauer As String
Dim aktzelle As Range
Dim ctlOLEObject As Object
Set aktzelle = Worksheets("Sampler").Cells(aktZeile, 6)
...
Worksheets("Sampler").Cells(aktZeile, 4).Value = TBInterpret.Value
Worksheets("Sampler").Cells(aktZeile, 5).Value = TBTitel.Value
If CheckBoxEdit = True Then
Set ctlOLEObject = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.CheckBox.1", _
Link:=False, _
DisplayAsIcon:=True, _
Left:=aktzelle.Left, _
Top:=aktzelle.Top, _
Width:=aktzelle.Width, _
Height:=aktzelle.Height)
ctlOLEObject.Placement = xlMoveAndSize

ctlOLEObject.Activate


ElseIf CheckBoxEdit = False Then
(das gleiche nochmal für Checkbox nicht aktiviert)
...

Bild

Betrifft: AW: Ckeckboxen zu Laufzeit erstellen
von: JL
Geschrieben am: 07.03.2005 23:18:13
Ob eine Checkbox aktiviert ist oder nicht kann man über
checkbox.Value = true / false
steuern.
Gruß
Jörg
Bild

Betrifft: AW: Ckeckboxen zu Laufzeit erstellen
von: S. Gilbrich
Geschrieben am: 08.03.2005 08:08:54
Prinzipiell ja, aber muss die CheckBox dafür nicht einen bestimmten Namen haben?
einfach nur mit Checkbox.Value = True tut sich gar nichts. Mein problem liegt darin, das Objekt nach dem erzeugen überhaupt anzusprechen.
Bild

Betrifft: AW: Ckeckboxen zu Laufzeit erstellen
von: Heiko S.
Geschrieben am: 08.03.2005 09:50:30
Hallo
aus meinem Archiv, Checkboxen auf Tabellenblatt dynamisch erzeugen und steuern.

Hinter einen Button, z.B. in deinem Userform.

Private Sub CommandButton16_Click()
Dim chB As Object
Dim intn As Integer, inti As Integer
' Erstmal die selbsterstellten wieder löschen, das kann wenns läuft natürlich raus.
For inti = 1 To 5
    On Error Resume Next
    ActiveSheet.Shapes("Checkbox 00" & inti).Cut
Next inti
On Error GoTo 0
intn = 395
For inti = 1 To 5
    ' Checkbox erstmal mit Größe 0 erzeugen.
    Set chB = ActiveSheet.CheckBoxes.Add(0, 0, 0, 0)
    With chB
        ' Nun Checkbox richtig positionieren
        .Left = Cells(31 + inti, 7).Left
        .Top = Cells(31 + inti, 7).Top
        .Height = Cells(31 + inti, 7).Height
        .Width = Cells(31 + inti, 7).Width
        ' Name, Caption usw. kann nun alles verändert werden
        .Name = "Checkbox 00" & inti
        .OnAction = "DemoMsg"
        .Caption = "Box" & inti
        ' Mal eine Testweise ohne Caption
        If inti = 1 Then
            .Caption = ""
        End If
        ' Mal eine Testweise sperren
        If inti = 3 Then
            .Enabled = False
        End If
        ' Mal eine Testweise vorbesetzen
        If inti = 5 Then
            .Value = True
        End If
    End With
    intn = intn + 15
Next inti
End Sub


In ein allgemeines Modul
' Als Test für dynamisch erstellte Checkboxen in Blatt MSG-Boxes.
Public Sub DemoMsg()
MsgBox Application.Caller
End Sub

Vielleicht hilft es dir ja ?!
Gruß Heiko

PS: Rückmeldung wäre nett !
Bild

Betrifft: AW: Ckeckboxen zu Laufzeit erstellen
von: s.Gilbrich
Geschrieben am: 09.03.2005 17:03:35
Danke! Is genau so wie ich es wollte!!!
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Ckeckboxen zu Laufzeit erstellen"