Ralf, erinnerst du dich? :-)
Hintergrund: Vor kurzem gab es das Thema wo eine Userform mit Controls zur Laufzeit erstellt wird wie man die darin erstellten Controls mit Events versorgt.
Na ja, hat mir keine Ruhe gelassen^^ :-)
Na ja, und trotzdem befürchte ich, dass ich wieder nich das habe, was dich interessiert...
Denn dort, wo ich gefunden habe, hast du bestimmt auch schon gelesen.
Nun denn, los gehts:
1. Wie wird mit VBA ein Userform erstellt, mit Controls, mit Ereignissen?
Das "Grundgerüst" fand ich hier: https://www.herber.de/mailing/UserForm_mit_ComboBoxes_durch_VBA-Code_erstellen.htm ...vom "Chef" selbst :-)
Was mir daran nicht so gefiel, der Code für Controls/Ereignisse wird mit...
.AddFromString strCode (strCode = String-Variable
...eingetragen
"Sorgen" machte mir die String-Var, denn, so weit ich mich erinner, haben String-Vars eine Grenze, wieviele Zeichen sie er/enthalten können.
Ich kenn die Grenze nicht, wenn aber z Bsp bei 1000 Zeichen Schluss ist, bekomm ich in so eine Variable nicht wirklich viel Code hinein, der ja nach obiger Vorgehensweise (siehe Details im Link) "in einem Rutsch" zur Verfügung stehen muss.
Vielleicht irre ich mich, das mit Grenze ist Quatsch, und der nächste Schritt wäre dann umsonst
2. Damit ich mir wegen vllt MAX-Anzahl von Zeichen in Var keine Gedanken machen muss, suchte ich nach einem anderen Weg, Code mit VBA in Module zu schreiben
Gefunden habe ich: https://www.mrexcel.com/board/threads/userform-creation-from-vba.1003716/
In dem Beitrag fand ich die Verwendung von
.insertlines 1, "Private Sub..."
In jeder insert-Zeile wird der Zeilenwert um 1 erhöht.
Cool, dachte ich, das kann man bestimmt auch mit Arrays lösen!
Ausprobiert, mehrmals korrigiert, funktioniert :-)
3. Und rausgekommen ist nun das hier:
https://www.herber.de/bbs/user/153932.xlsm
Wenn du die Datei öffnest, siehst du erst mal nur 2 Button und eine ansonsten leere Tabelle
Schau dir erstmal ohne Button-Klick im VBE alles an - es ist kein Userform enthalten.
Klick nun bitte auf den Adress-Button.
1. Es öffnet sich ein Userform für Adresseingabe mit Eingabefelder für die üblichen Daten und eine Auswahl, ob m oder w (Rene kann auch n Mädchen sein! ;-) )
2. Bitte trag mal überall etwas ein, wähl m oder w aus und klick erst dann auf den Button, da eine Kontrolle, ob alles ausgefüllt ist, nicht enthalten ist
3. Nach Klick auf den Button hat die Tabelle...
a) eine Überschriftenzeile
b) die Werte aller Textfelder wurden in die korrekten Spalten eingetragen
4. nun kannst du mit Klick auf x das Userform wieder schließen (oder vorher gern auch weitere Datensätze hinzufügen)
5. Nach Schließen des Userforms...
a) sind in der Tabelle noch alle Daten vorhanden
b) ABER im VBE wurde das vorher sichtbare Userform wieder entfernt!
Was hältst du davon?
Auch auf die Gefahr hin, dass es dir...noch immer nicht genug ist^^...habe zumindest ich wieder was Neues gelernt...dank dir! :-)
Bisher hab ich noch nie ein Userform + Co nur mit VBA erstellt.
Und ich werd das wohl auch nie wieder tun! :-)
Was für ein Aufwand...uih uih! Da erstell ich doch lieber sooo viele "echte" Userforms, wie ich sie für ein Projekt benötige, als dass ich all das nur mit VBA durchführe.
Ciao
Thorsten