UserForm Multipage Register ausblenden
#1
Huhu,

weiß jemand, ob es möglich ist in einer Userform mit mehreren Reitern bestimmte Reiter unsichtbar zu setzen?

In der Userfrom gibt es ein Feld in dem man eine Anzahl von 1-6 setzen kann. Und darauf basierend sollen im Anschluss die entsprechenden Reiter 1-6 eingeblendet werden.

Sprich wenn ich 4 angebe dann sollen 4 Eingabereiter erscheinen. Wenn ich 6 angebe sollen 6 Reiter erscheinen (sichtbar werden).

Vielen Dank schon mal.
Top
#2
In meiner Erinnerung ist das auf jeden Fall möglich, sogar relativ einfach. Man muss es einfach dynamisch aufziehen. Aber wie der genaue Code nochmals dafür war, weiß ich nicht mehr. Ist glaub auch schon 3 Jahre her, das ich das so gemacht habe.
[-] Folgende(r) 1 Nutzer sagt Danke an korinna83 für diesen Beitrag:
  • StrammerMax
Top
#3
Hier hat jemand nahezu die gleiche Problemstellung:

https://www.ms-office-forum.net/forum/sh...p?t=163034

Die Reiter müssen ja nicht dynamisch erstellt werden, sondern einfach nur nach Abprüfen einer Bedingung sichtbar gesetzt werden.
Top
#4
Code:
Private Sub ComboBox1_Change()
Dim i As Integer
On Error Resume Next

For i = ComboBox1.Value To 6
   Me.MultiPage1.Pages(i).Visible = False
Next i

For i = 1 To (ComboBox1 - 1)
   Me.MultiPage1.Pages(i).Visible = True
Next i
End Sub
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • StrammerMax
Top
#5
Es ging viel einfacher als gedacht.

Einfach einmal im initialize alle Register (über den Index) auf visible false gesetzt und dann jeweils in der click Methose des Buttons die gewünschten Felder auf True
Top
#6
(18.01.2019, 12:20)StrammerMax schrieb: Das ist der Button um die Anzahl der Optionen auf 1 zu setzen.
Wenn er geklickt wird soll nur die Page mit dem Index 4 erscheinen - sie soll vorher unsichtbar sein.

Was hat das jetzt mit Deiner Eröffnungsfrage zu tun? Undecided

Gruß Uwe
Top
#7
(18.01.2019, 12:27)Kuwer schrieb: Was hat das jetzt mit Deiner Eröffnungsfrage zu tun?  Undecided

Gruß Uwe

Meinst du, weil ich in der Frage von einem Feld gesprochen habe und jetzt von mehreren Buttons?
Ich wollte nur grundlegend klären, ob das möglich ist.

Manchmal sieht man den Wald vor lauter Bäumen nicht. In diesem Fall ging es viel einfacher als gedacht.
Top
#8
Hatte einen Denkfehler in meinem Code. Ersetze

Code:
For i = ComboBox1.Value To 6
durch
Code:
For i = ComboBox1.Value To 5
dann kannst du das On Error Resume Next rausnehmen.
Schöne Grüße
Berni
Top
#9
Danke nochmal MisterBurns.

Wisst ihr zufällig auch, ob man die Register einfärben kann? Am besten in RGB Farben.
(Jedes Register einzeln)

Über die Eigenschaften geht das leider nicht.

Es soll wohl über ein Objekt vom Typ Image gehen.


Und gleich noch eine Frage hinterher.
Dadurch, dass die neuen Register "on the fly" eingeblendet werden muss ich für die Register natürlich die Userform in X-Richtung größer machen.
Solange die Register ausgeblendet sind ist mein Fenster dann aber viel zu groß.
Kann man das Fenster dynamisch an die benötigte Größe anpassen?

Sprich - anfangs z.B. 20 cm breit und wenn ich dann ein Register mehr einblende soll das Ursprungsfenster immer um 3 cm größer werden?
Top
#10
Einfärben ist meines Wissens nicht möglich. Du könntest höchstens Bilder über die Tabs legen, die dann bei Aktivierung des Tabs sichtbar werden. Ob es den Aufwand wert ist, musst du wissen.

Das mit der Größe verstehe ich wiederum nicht. Durch das Ausblenden der einzelnen Tabs verändert sich doch nicht die Größe des Multipageobjekts.
Schöne Grüße
Berni
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste