mich treibt ein Problem fast zum Wahnsinn.
Bitte liebe Experten helft mir auf die Sprünge.
Die Aufgabe scheint eigentlich simpel.
Ich möchte eine Userform öffnen, allerdings nicht direkt
mit UserformName.show, sondern die Userform einer Variablen zuweisen
und aus dieser die Form öffnen also etwa
VariableName.show
Konkret sieht das bei mir so aus:
Dim v_Obj As Object
Set v_Obj = Workbooks(1).VBProject.VBComponents(19) 'Die VB-KOmponente 19 ist eine Userform
'v_Obj.Show
Ich quäl mich zu dem Thema bereits unzählige Stunden durch die Foren und habe dazu auch einiges gefunden.
Die Verweise habe ich angepasst, in den Entwicklermakroeinstellungen ist der Zugriff auf das VBA-Projektmodell enabled.
Das Resultat obiger Vorgehensweise sieht erst mal gut aus
v_Obj.Type liefert 3 also Userform
v_Obj.Name liefert den richtigen Namen
Aber
v_Obj.Show liefert Laufzeitfehler 428, Objekt unterstützt diese Eigenschaft oder Methode nicht.
Selbes Verhalten ist auch wenn man
Workbooks(1).VBProject.VBComponents(19).Type
Workbooks(1).VBProject.VBComponents(19).Name
Workbooks(1).VBProject.VBComponents(19).Show
versucht,
gegengetestet auf Excel 2007 und 2013
In einem Forum wurde behauptet, dass DoCmd.UserForm aus Access genutzt werden kann wenn der Verweis dazu gesetzt wird.
Das würde den selben Effekt haben mit DoCmd.OpenForm
Nachdem der Verweis gesetzt ist erkennt VBE DoCmd und bietet auch die OpenForm Methode an
aber die Ausführung scheitert an Laufzeitfehler 2046 Der Befehl oder die Aktion 'Öffnen Formular' ist zurzeit nicht verfügbar.
Gruß Harald