Dynamsische Userforms erstellen

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

Betrifft: Dynamsische Userforms erstellen
von: Hans Werner
Geschrieben am: 09.06.2015 10:18:25

Hallo zusammen,
ich habe noch nicht viel Erfahrung im Programmieren und habe vor Kurzem begonnen, mich mit VBA in Excel zu beschäftigen.
Nun möchte ich verschiedene Userforms erstellen, in denen so viele Text- und Eingabefelder erscheinen, wie in einer Tabelle festgelegt ist. D.h. beispielsweise sollen dann in der ersten Userform fünf Text- und Eingabefelder erscheinen, in der nächsten aber zwölf. Für jede Userform gibt es ein eigenes Tabellenblatt. Die Beschriftungen der Textfelder sollen ebenfalls aus den Tabellen entnommen werden.
Kann mir jemand von euch weiterhelfen? Meine Recherche hat leider noch keine brauchbaren Ergebnisse geliefert.
Vielen Dank!

Bild

Betrifft: AW: Dynamsische Userforms erstellen
von: Hajo_Zi
Geschrieben am: 09.06.2015 10:25:13
schaue auf dieser Seite. Das zweite Beispiel für OptionsButton.
http://hajo-excel.de/vba_userform_klasse.htm


Bild

Betrifft: AW: Dynamsische Userforms erstellen
von: Hans Werner
Geschrieben am: 11.06.2015 09:17:53
Danke für die schnelle Antwort!
Leider konnte ich mich nicht so richtig zurecht finden. Ich habe nun einen Teil des Codes erstellt und habe Probleme, die Range festzulegen, mit der die Labels gefüllt werden.


Private Sub UserForm_Initialize()
Dim I As Integer
Dim c As Control
For I = 1 To erste_freie_Zeile
Dim erste_freie_Zeile As Integer
erste_freie_Zeile = Sheets("BIT").Range("B65536").End(xlUp).Offset(1, 0).Row
    Set c = Controls.Add("Forms.Label.1", "Label_" & I, True)
    With c
        .Left = 24
        .Top = (I * 20) + 100
        .Height = 20
        .Width = 120
        .Caption = Worksheets("BIT").Range("B2:erste_freie_Zelle").Value
        .Name = "Label" & (I)
    End With
    Set c = Nothing
Next I
End Sub

Mit der Definition "erste_Freie_Zeile" funktioniert das leider nicht. Außerdem weiß ich leider noch nicht, wie ich auch Textboxen einfügen kann.
Wie ihr seht, bin ich noch Anfänger und berauche eure Hilfe.
Vielen Dank und liebe Grüße

Bild

Betrifft: AW: Dynamsische Userforms erstellen
von: Hajo_Zi
Geschrieben am: 11.06.2015 17:34:30
das mag ´daran liegen das es keine Zelle mit dem Namen "B2:erste_freie_Zelle" gibt. Jedenfalls bei mir. Ich würde vermuten ":" ist in einen Namen nicht zugelassen.
Gruß Hajo

Bild

Betrifft: AW: Dynamsische Userforms erstellen
von: Hans Werner
Geschrieben am: 10.06.2015 10:44:55
Danke für die schnelle Antwort!
Leider konnte ich mich nicht so richtig zurecht finden. Ich habe nun einen Teil des Codes erstellt und habe Probleme, die Range festzulegen, mit der die Labels gefüllt werden.<

Private Sub UserForm_Initialize()
Dim I As Integer
Dim c As Control
For I = 1 To erste_freie_Zeile
Dim erste_freie_Zeile As Integer
erste_freie_Zeile = Sheets("BIT").Range("B65536").End(xlUp).Offset(1, 0).Row
    Set c = Controls.Add("Forms.Label.1", "Label_" & I, True)
    With c
        .Left = 24
        .Top = (I * 20) + 100
        .Height = 20
        .Width = 120
        .Caption = Worksheets("BIT").Range("B2:erste_freie_Zelle").Value
        .Name = "Label" & (I)
    End With
    Set c = Nothing
Next I
End Sub

Mit der Definition "erste_Freie_Zeile" funktioniert das leider nicht. Außerdem weiß ich leider noch nicht, wie ich auch Textboxen einfügen kann.
Wie ihr seht, bin ich noch Anfänger und berauche eure Hilfe.
Vielen Dank und liebe Grüße

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dynamsische Userforms erstellen"