Dank der Hilfe von hier ist es mir nun möglich, ein neues Modul zur Laufzeit erzeugen. Nun habe ich das Makro erstellt, welches mir eine neue Datei erzeugt, in der neuen Datei ein Modul mit einem Makro anleget und im 1. Tabellenblatt einen Button zum Aufrufen des Makros erzeugt. Klicke ich nun auf den Button, kann das Makro nicht gestartet werden, da beim Anklicken des Buttons immer versucht wird, das Makro in der Datei, aus der ich das neue Modul und das neue Makro erzeuge, zu starten.
Beispiel: ich starte das Makro zum Erzeugen der Datei, des Moduls und des Makros in Datei Mappe1.xls. Es wird eine neue Datei mit dem Namen Mappe2.xls mit dem Modul, dem Makro und dem Button im 1. Tabellenblatt erzeugt. Klicke ich nun auf den neuen Button in Mappe2.xls, wird versucht das Makro in Datei Mappe1.xls zu starten. Das erzeugt natürlich einen Fehler, da es ja nicht in der Datei Mappe1.xls vorhanden ist.
Nachfolgend mal mein momentanes Makro. Was mache ich darin falsch?
Sub Test()
Dim objNewWorkbook As Workbook
Dim objModul As Object
Set objNewWorkbook = Application.Workbooks.Add
Set objModul = Application.VBE.ActiveVBProject.VBComponents.Add(1)
objModul.Name = "Modul_UserForm_oeffnen"
With objNewWorkbook.VBProject.VBComponents("Modul_UserForm_oeffnen").CodeModule
.InsertLines 3, "
Sub UserForm_oeffnen()"
.InsertLines 4, "frm_TestUserForm.Show"
.InsertLines 5, "End Sub
"
End With
objNewWorkbook.Sheets(1).Buttons.Add(63, 14.25, 115.5, 21).Select
With Selection
.OnAction = "UserForm_oeffnen"
.Font.Name = "Arial"
.Font.FontStyle = "Fett"
.Font.Size = 10
.Font.ColorIndex = 5
.ShapeRange.Height = 28.5
.ShapeRange.Width = 115.5
.Characters.Text = "UserForm öffnen..."
End With
Set objNewWorkbook = Nothing
Set objModul = Nothing
End Sub
Danke und Gruß,Kasimir