ich schreibe derzeit ein Makro mit dem ich in einem anderen Workbook eine UserForm mit _ ComboBoxen erstelle. Das läuft soweit auch ganz gut.
'Create a UserForm
Set frmUserform = Workbooks(fileName).VBProject.VBComponents.Add(vbext_ct_MSForm)
With frmUserform
.Properties("Left") = 50
.Properties("Top") = 50
.Properties("Height") = 370
.Properties("Width") = 570
.Properties("Caption") = "Enter New Module"
.Name = "frmMyUserForm"
'.Properties ("Show")
End With
With frmMyUserForm
For i = 1 To productRange.Count
Call AddComboBox(i, frmUserform, productRange, fileName, DATABASE)
Next
End With
Sub AddComboBox(myI As Long, frmUF As VBComponent, prodRange As Object, wbName As String, _
wsName As String)
Dim myFrame As Frame
Dim myComboBox As ComboBox
Dim i As Long
Dim L As Long
Dim T As Long
Dim H As Long
Dim W As Long
Dim ar As Variant
L = 10
W = 120
H = 15
T = (myI - 1) * H + 5
Set myFrame = frmUF.Designer.Controls.Add("Forms.Frame.1", "fraParameter" & CStr(myI), True) _
With myFrame
.Caption = prodRange.Cells(myI).Value
.Left = L
.Top = T * 2
.Height = H * 2
.Width = W + 10
.BorderColor = RGB(255, 255, 255)
.TabIndex = myI - 1
Set myComboBox = myFrame.Controls.Add("Forms.ComboBox.1", "cboParameter" & CStr(myI), _
True)
With myComboBox
.Clear
.Left = 5
.Top = 6
.Height = H
.Width = W
.TabIndex = 0
.Visible = True
End With
End With
End Sub
Nun will ich einen Schritt weiter gehen und auch den UserForm-Code per Makro erstellen. Hier hab ich jedoch noch keinen wirklichen Ansatz gefunden. Ich habe zwar schon ein Modul erstellt zum Aufrufen des UserForms...
'create a VBA project in the opened file
Set VBComp = Workbooks(fileName).VBProject.VBComponents.Add(vbext_ct_StdModule)
VBComp.Name = MAKRO_NAME
Application.Visible = True
'fill with code
With VBComp.CodeModule
.InsertLines 1, "Sub " & MAKRO_NAME & "()"
.InsertLines 2, " frmMyUserForm.show"
.InsertLines 3, "End Sub"
End With
Set VBComp = Nothing
...aber weiß jetzt nicht wie ich den "UserForm_Activate()" per Makro erstellt bekomme.
Kann mir einer sagen wie bzw. ob das möglich ist?
Danke!