Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Userform Multipage - Page auswählen

Forumthread: Userform Multipage - Page auswählen

Userform Multipage - Page auswählen
20.10.2025 12:29:26
WM1
Hi

ich habe eine Userform mit mehreren Pages.

z.B.: Startseite, Flughafen, Agent

auf der Page Flughafen werden Daten von bestehenden Flughäfen korrigiert, bzw. ein neuer Flughafen angelegt.

auf der Page Agenten werden Daten von bestehenden Agenten korrigiert bzw. ein neuer Agent angelegt.

Jede Page hat einen Speicherbutton. Nach dem Drücken des Speicherbuttons wird das UF entladen und wieder neu geladen (damit die zugehörige Listbox
aktualisiert wird. Man soll auf der Seite bleiben. Soweit so gut

Aber wenn ich Daten auf der Page Flughafen korrigiere und speichere und danach auf die Seite Agent wechsle, auf der Seite Agent einen Datensatz korrigiere und
speichere lande ich wieder auf der Seite Flughafen.

Wenn ich zuerst auf der Seite Agent Daten korrigiere, danach auf die Page Flughafen wechsle, dort Daten korrigiere, lande ich wieder auf der Seite Agent.

Unload UF_BASISDATEN
UF_BASISDATEN.Show
Me.MultiPage1.Value = "Airports" bzw. me.MultiPage1.Value = "Agent"

Auch wenn ich mit der Indexnummer arbeite, ändert sich nichts. Ich lande immer auf der zuerst gewählten Page, ich möchte aber auf der zuletzt gewählten Page bleiben.

Jemand eine Idee, wie ich mein Problem löse ?

Vielen Dank und lg Willi
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Multipage - Page auswählen
20.10.2025 12:42:44
Alwin Weisangler
Hallo Willi,

die Multipage kann, wenn man zuviel von diesem Control will, auch schnell Probleme machen. Versuche mal mit DoEvents der Sache etwas Zeit zu geben. Vielleicht hilft das ja schon.

Gruß Uwe
AW: Userform Multipage - Page auswählen
20.10.2025 13:01:38
Marc
Private Sub cmdSpeichern_Click()
Dim aktPage As Integer

' Aktuelle Seite merken
aktPage = MultiPage1.Value

' --- Hier dein Speicher-Code ---
' z. B. Daten in Tabellenblatt schreiben:
' Sheets("Daten").Range("A1").Value = txtEingabe.Value
' usw.

' Optional: UserForm aktualisieren oder Eingaben leeren
' Me.Repaint

' Nach dem Speichern wieder auf die vorherige Seite springen
MultiPage1.Value = aktPage
End Sub
Anzeige
AW: Userform Multipage - Page auswählen
20.10.2025 13:04:43
Marc
Die Pages werden mit Zahlen (Integer) Indiziert.. (CAVE, wenn du die Pages erstellst und sie verschiebst dann bleibt die Zahl bestehen, das heißt , die Reihenfolge ist eventuell verändert)
AW: Userform Multipage - Page auswählen
20.10.2025 14:25:36
daniel
Wenn du eine Userform entlädst (unload me) und wieder neu startest, dann startet sie immer mit de Einstellung, die du im VBA-editor festgelegt hast.

Wenn du schreibst, dass du die Userform entladen musst, um die Listbox zu aktualisieren, dann probiere mal folgendes:

Verschiebe den Code, der im Initialize-Event steht, ins Activate-Event und verwende statt Unload Me den Befehl Me.Hide

Mit Me.Hide verlässt du zwar auch die Userform, aber sie wird nicht vollständig geschlossen sondern nur ausgeblendet. Damit bleiben die zuletzt gemachten Änderungen wie die aktive Page erhalten und werden nicht auf Ursprung zurückgesetzt.

Gruß Daniel
Anzeige
AW: Userform Multipage - Page auswählen
20.10.2025 16:08:24
schauan
Hallöchen,

also, auf welcher Page Du bist und was Du da tust, ist eigentlich ziemlich egal.
Du schreibst, dass die Änderungen per Button irgendwohin übernommen werden. Dann kannst Du in dem Moment die Controls aktualisieren, die das betrifft.

Dazu wäre es von Vorteil, wenn Du die Befüllung zumindest der betroffenen Controls in eigenständige Makros auslagerst. Diese kannst Du dann bei Bedarf aufrufen.

z.B. - im Prinzip

Sub Userform_Activate

Call Listbox1_fuellen
Call Listbox2_fuellen
End Sub

Sub ButtonSpeichernIrgendwas
'... speichern
Call Listbox1_fuellen
End Sub

Sub ButtonSpeichernIrgendwasAnderes
'... speichern
Call Listbox2_fuellen
End Sub

Sub ButtonSpeichernAlles
'... speichern
Call Listbox1_fuellen
Call Listbox2_fuellen
End Sub

Private Sub MultiPage1_Change()
Select Case MultiPage1.Value
Case 0: Call Listbox1_fuellen
Case 1: Call Listbox2_fuellen
Case 2: Call Listbox1_fuellen: Call Listbox2_fuellen
End Select
End Sub

Sub Listbox1_Fuellen
With Me.Listbox1
.ColumnCount = 10
.list() = IrgendEinBlatt.ListObjects("DieKomischeTabelle").DataBodyRange.Value
.ListIndex = -1
End With
End Sub

Sub Listbox2_Fuellen
With Me.Listbox2
.ColumnCount = 10
.list() = IrgendEinAnderesBlatt.ListObjects("DieAndereKomischeTabelle").DataBodyRange.Value
.ListIndex = -1
End With
End Sub


Das ginge alternativ auch beim Wechsel der Pages, ... Die Index-Zahlen spielen dann wohl beim Anwender eher keine Rolle :-)

Private Sub MultiPage1_Change()

Select Case MultiPage1.Value
Case 0: Call Listbox1_fuellen
Case 1: Call Listbox2_fuellen
Case 2: Call Listbox1_fuellen: Call Listbox2_fuellen
End Select
End Sub



Anzeige
AW: Userform Multipage - Page auswählen
20.10.2025 12:45:40
Alwin Weisangler
Ach ja, das Entladen und neu Laden lässt sich und sollte man eigentlich vermeiden. Aktualisiere einfache nur die Controls, wo sich Änderungen ergeben. Das ist Schonender.

Gruß Uwe
AW: Userform Multipage - Page auswählen
20.10.2025 13:01:12
WM1
Hallo Uwe,

funktioniert leider nicht. Aber trotzdem vielen Dank für den Ratschlag. Lg WIlli
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18