Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Checkboxes dynamisch erzeugen

Checkboxes dynamisch erzeugen
08.12.2004 19:39:40
Choros
Hallo,
ich möchte mehrere Checkboxes auf einem Frame in einem Userform dynamisch erstellen. Dabei soll der Benutzer die Anzahl der Checkboxes festlegen. Beispiel: Wenn der User 8 eingibt, sollen auf dem Frame 8 checkboxes erscheinen. Mit dem folgenden Code habe ich zwar einen Checkbox erzeugen können:
Dim MyCheckBox As msforms.CheckBox
Set MyCheckBox = Laufzettel.Frame7.Controls.Add("Forms.CheckBox.1", , True)
Ich schaffe aber nicht mehrere Checkboxes zu erzeugen
Kann mir jemand da helfen?
Danke.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxes dynamisch erzeugen
Ramses
Hallo
kopier den Code in eine leere Userform und öffne diese dann

Private Sub UserForm_Initialize()
'Variablen setzen
Dim plTop As Integer, plHeight As Integer, plWidth As Integer, plLeft As Integer
Dim ufHeigth As Integer, ufWidth As Integer
Dim hSpace As Integer, vSpace As Integer
Dim i As Integer, n As Integer
Dim MyCtrl As Control
Dim txtBox1 As Integer, txtBox2 As Integer
'Userform erstellen
vSpace = 5
hSpace = 5
plTop = 5
plWidth = 50
plHeight = 15
plLeft = 10
'userformgrösse abfragen
txtBox1 = InputBox("Wieviele Textboxen möchten Sie erstellen", "Initialisierung", 50)
If txtBox1 Mod 10 <> 0 Then
MsgBox "auf die Schnelle nur mit geraden Zahlen"
Exit Sub
End If
If txtBox > 100 Then
MsgBox "Soviele sollten es nicht sein ;-)"
Exit Sub
End If
txtBox2 = InputBox("Wieviele Textboxen sollen untereinander stehen", "Initialisierung", Int(txtBox1 / 5))
If txtBox > txtBox1 Then
MsgBox "Das sind mehr als erstellt werden sollen ;-)"
Exit Sub
End If
ufHeigth = ((txtBox2 * plHeight) + ((txtBox2 * vSpace) + (4 * vSpace))) + 40
ufWidth = (Int((txtBox1 / 10)) * plWidth) + (Int((txtBox1 / 10)) * 10) + (4 * hSpace)
Debug.Print "Höhe: " & ufHeigth
Me.Height = ufHeigth
Me.Width = ufWidth
For i = 1 To (txtBox1 / txtBox2)
For n = 1 To txtBox2
Set MyCtrl = Controls.Add("Forms.Textbox.1")
MyCtrl.Left = plLeft
MyCtrl.Top = plTop
MyCtrl.Width = plWidth
MyCtrl.Height = plHeight
MyCtrl.name = "Textbox" & i
plTop = plTop + plHeight + 5
Next n
plTop = 5
plLeft = plLeft + plWidth + hSpace
Next i
'Schaltfläche hinzufügen
Debug.Print "Top: " & ufHeigth - (2 * plHeight + 20)
Set MyCtrl = Controls.Add("Forms.textbox.1")
MyCtrl.Left = 2 * vSpace
MyCtrl.Top = ufHeigth - (2 * plHeight + 20)
MyCtrl.Width = (3 * plWidth) + (2 * plWidth)
MyCtrl.Height = plHeight
MyCtrl.name = "txtLabel" & i
MyCtrl.Value = "That's real VBA Life ;-)"
End Sub

Dies ist nur ein Beispiel wie es mit Textboxen geht und der problematik der Platzierung.
Mit etwas Willen kannst du das sicher an deine Bedürfnisse anpassen
Viel Spass
Gruss Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige