Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Checkbox automatisch in UserForm

Forumthread: Checkbox automatisch in UserForm

Checkbox automatisch in UserForm
07.02.2004 22:02:15
Mike
Hallo,
ich habe schon lange gesucht, aber nichts gefunden.
In einer Tabelle habe ich mehrere Werte untereinander stehen. Sie werden aus einer anderen Datei eingelesen. Die Anzahl und die Werte sind variabel. Das ist im Grunde das Problem. Ich möchte nun von diesen Werten jeweils eine Checkbox in einer UserForm darstellen lassen. Wenn möglich, soll sich die Größe der Userorm automatisch anpassen. Bei Auswahl der Checkboxen benötige ich die Ausgabe-Werte wieder für ein seperates Projekt. Das sollte ich dann aber hinbekommen.
Wie immer im Voraus Danke für Eure Antworten!
Gruß
Mike
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox automatisch in UserForm
07.02.2004 22:13:52
Ramses
Hallo Mike
nur mal so einen Ansatz wie dynamisch gefüllt werden kann.


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 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

     Code eingefügt mit Syntaxhighlighter 2.5


Das kannst du sicher anpassen.
Gruss Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige