Ich habe mittels VBA-Code - auf einer leeren Userform- dynamisch
CommandButtons erstellen lassen. Soweit hat alles wunderbar funktioniert.
Die Schaltflächen habe ich per Schleife als CommandButton1, -2,..usw.
benannt.(cmdXX.name=)
Nun kommt mein Problem. Ich möchte nun( zur Laufzeit der Userform) , auf die
dynamischen CommandButtons zugreifen, bzw. Klicks auf die entsprechenden
Schaltflächen auswerten. (Es soll dann weiterer Code ausgeführt werden).
Mir ist kein Ereignis bekannt mit dem dies möglich wäre . Habe auch schon
ausprobiert eine "Sub CommanButton1_Click " einzufügen, in der Hofnung das
duch das Anklicken der 1. Schaltfläche etwas passiert . Aus VB weis ich,
dass man Steuerelement mit gleichen Namen , aber jeweils anderem Index
vergeben kann. In Excel(VBA) "mault" aber bei diesem Versuch.
Sub DynamischeUserformErstellen()
Dim frmUserform As Object
'Verweis auf Microsoft Forms 2.0 Object Library setzen
Dim ctrlButton As MSForms.CommandButton
Dim intLine As Integer
Set frmUserform = _
Application.VBE.ActiveVBProject.VBComponents.Add(3)
With frmUserform
.Properties("Caption") = "Dynamische Userform"
.Properties(50) = 0 'StartUpPosition: 0 = manuell
.Properties("Left") = 100
.Properties(41) = 200 'Top
.Properties("Width") = 120
.Properties("Height") = 80
End With
'ComandButton hinzufügen
Set ctrlButton = _
frmUserform.Designer.Controls.Add("Forms.CommandButton.1")
With ctrlButton
.Caption = "Klick mich"
.Top = 18
.Left = 20
End With
'Klick-Ereignis für CommandButton hinzufügen
With frmUserform.CodeModule
intLine = .CountOfLines
.InsertLines intLine + 1, "Sub CommandButton1_Click"
.InsertLines intLine + 2, " MsgBox ""Frank Arendt-Theilen"""
.InsertLines intLine + 3, " Unload Me"
.InsertLines intLine + 4, "End Sub"
End With
'Userform anzeigen
VBA.UserForms.Add(frmUserform.Name).Show
'Userform löschen
With Application.VBE.ActiveVBProject
.VBComponents.Remove .VBComponents(frmUserform.Name)
End With
End Sub
MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de