Ich habe einen Code erstellt, um eine neue Userform mit bestimmtem Aufbau zu erstellen. Im bereitgestellten Code wird zu Testzwecken nur die Userform ohne weiter Elemente erstellt.
https://www.herber.de/bbs/user/153778.txt
Problem 1: Excel lässt es nicht zu, dass eine neue Userform erstellt werden kann, deren Name beim Workbook-Open bereits bestand oder erzeugt wurde, auch wenn diese Userform zuvor gelöscht wurde.
Lösung 1: Nach dem Löschen die Mappe sichern.
https://www.ms-office-forum.net/forum/showthread.php?t=198382
Problem 2: Wird innerhalb eines Codes mit xxx.Show die neu zu erstellende Userform angesprochen, und ist diese noch nicht vorhanden, führt dies zu der Fehlermeldung Fehler beim Kompilieren; Variable nicht definiert. Ist die angesprochene Userform jedoch vorhanden, so kann diese nicht gelöscht werden; der entsprechende Lösch-Befehl endet ohne Fehler. Die Folge davon ist, dass eine Userform mit diesem Namen nicht erstellt werden kann (Laufzeitfehler 50135)
Lösung 2:
Dim UFObject As Object
Set UFObject = UserForms.Add(User-Form-Name))
UFObject.Show
Problem 3: bei dem von Hajo Ziplies bereitgestellten Code (http://hajo-excel.de/gepackt/fremd/userform_optionsbutton_dynamisch.zip)
gibt es das Problem, dass der nach einem Klick auf einen der Radiobuttons auszuführende Code (clsOption) zwar durchlaufen wurde, der Befehl ".unload" jedoch die Userform nicht schließt. Das kann nur erreicht werden, wenn auf das Kreuz rechts oben geklickt wird. Bei einem Aufruf mit Frm_Tabelle.Show wird dagegen die Userform geschlossen. Den im genannten Code enthaltene Befehl Frm_Tabelle.Hide habe ich entfernt. Grund war ein Laufzeitfehler 402 in Verbindung mit der genannten Aufruf-Form. Bei normalem Aufruf tritt der Fehler nicht auf.
Für dieses Problem habe ich noch keine Lösung gefunden. Wer hat eine Idee?
Zum Test den beigefügten Code in die oben genannte Mappe einfügen und statt der Prozedur "Start" diese Prozedur aufrufen.
Gruß Joschi