ich möchte, wie im Betreff beschrieben, eine Userform Inception machen. :19: Ich benutze excel 2010 und bin eher ein Anfänger in Sachen VBA.
Problem 1: Ich habe bis jetzt eine UserForm1, die soweit auch das tut, was ich möchte. Da sie aber schon relativ voll mit Buttons und ComboBoxen ist und nicht unübersichtlich werden soll, möchte ich einen Button einbauen, der eine UserForm2 in der UserForm1 erstellt (sofern das überhaupt möglich ist).
Problem 2: In meiner jetzigen UserForm1 habe ich einen Button, der meine Einträge die ich mache in meiner Exceltabelle speichert. Dabei sucht er die erste freie Zeile). Gebe ich jetzt erneut etwas ein und speichere ich es, wird es in die nächste frei Zeile darunter eingetragen (Es wird also nicht überschrieben). Ich möchte also in der UserForm1 alles eintragen, die UserForm2 durch den Button öffnen und dort Werte eintragen. Dann auf Speichern drücken und alles soll in der Selben Zeile gespeichert werden. Wiederhole ich das, dann in die nächste freie Zeile usw. Ich hänge auch mal meine Aktuelle UserForm an. In der wird auch kurz erklärt was sie macht. Außerdem erstelle ich eine 2. Userform, die dann mit dem Button geöffnet werden soll, damit Ihr wisst, wie sie aussehen soll (Wenn Ihr beim Design andere Vorschläge habt, bin ich gerne für alles offen!) Ich bedanke mich schon mal für eure Geduld und Hilfe.
Hallo! Erst mal ohne die Datei angesehen zu haben: Du darfst UF1 nicht per Unload Me aus dem Speicher verbannen, sondern sie nur per Me.Hide "verstecken". Im Speicher-Button von UF2 kannst Du auf UF1 zugreifen und beide UF erst nach dem Übertrag per Unload UserForm1 Unload Userform2 schließen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Hi Ich glaube ich habe verstanden was du meinst. Ich gebe alles in der UF1 ein, drücke dann auf den Butten der UF2 öffnet (und gleichzeitig wird sozusagen mein Eintrag in UF1 zwischengespeichert). Danngebe ich alles in UF2 ein und speichere es endgültig?! Und noch dazu, falls das relevant ist: mein Speicherbutton schließt nicht gleichzeitig die UF. Dafür gibt es bei mir einen extra Button. Gruß Jan
05.11.2015, 11:38 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015, 11:46 von Rabe.)
Hi Jan,
(05.11.2015, 11:07)Jan-Lan95 schrieb: Ja klar doch. Seite2 der MultiPage ist zwar noch nicht mit codes versehen, aber zum Verständnis ist das denke ich auch nicht notwendig.
Die Userform sieht jetzt sehr gut aus!
Ich habe es mal selber mit der Datei von gestern probiert und die Seite 2 der Multipage mit Makros versehen, sowie das Löschen der Eingabefelder vereinfacht:
Code:
Private Sub CommandButton1_Click()
If Trim(CStr(TextBox1.Text)) = "" Then MsgBox "Sie müssen mindestens einen Kunden eingeben!", vbCritical + vbOKOnly, "FEHLER!" Exit Sub End If
Dim ZeileMax As Long Dim Zeile As Long Dim loSpalte As Long
With Tabelle1 ZeileMax = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) 'letzte belegte Zeile in Spalte A (1) Zeile = ZeileMax + 1
Hallo Ralf, vielen Dank für deine Hilfe. Du hast mir ne Menge Arbeit erspart... Ich hätte mit meinen Kentnissen jetzt jedes Textfeld kopiert. Aber was ich noch besser finde: inzwischen kann ich die meißten Codes auch nachvollziehen und sogar auf andere Bsp. anwenden (das Gefühl habe ich zumindest) Und ich dem Zusammenhang habe ich noch eine Frage zu deinem Code bzgl. des Lösch-Buttons:
Du 'Beschreibst' am anfang "i" als alle ComboBoxen von 1 bis 142
Dann schreibst du "Next i" um "i" wieder neu zu beschreiben (so habe ich das zumindest verstanden. Korrigier mich, wenn ich falsch liege). In dem Fall beschreibst du anschließend alle KomboBoxen. Dann die OptionButtons und dann schreibst du wieder "Next i"
Wieso muss ganz am Ende wieder "Next i" geschrieben werden, obwohl danach "i" nicht wieder neu beschrieben wird?
(05.11.2015, 12:36)Jan-Lan95 schrieb: Du 'Beschreibst' am anfang "i" als alle ComboBoxen von 1 bis 142
Dann schreibst du "Next i" um "i" wieder neu zu beschreiben (so habe ich das zumindest verstanden. Korrigier mich, wenn ich falsch liege). In dem Fall beschreibst du anschließend alle KomboBoxen. Dann die OptionButtons und dann schreibst du wieder "Next i"
Wieso muss ganz am Ende wieder "Next i" geschrieben werden, obwohl danach "i" nicht wieder neu beschrieben wird?
Das Next ist Teil einer For-Schleife.
Es wird dann i hochgezählt von 1 bis 147. Wenn das erreicht ist, ist die Schleife fertig. Dann kommt die nächste Schleife wieder von For bis Next und dann die dritte. Es könnte auch jeweils eine andere Variable (i, j, k, oder sonst einen beliebigen Namen, siehe loSpalte) verwendet werden, dann wäre es einfacher zu verstehen. Aber ich bin davon ausgegangen, daß For-Next-Schleife jedem bekannt ist. Das ist eines der ersten Dinge, die man beim Programmieren lernt. :19:
Das "i" bei "Next i" ist nicht nötig, macht es aber übersichtlicher.
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28 • Jan-Lan95