Hallo,
derzeit lasse ich auf einer Userform bestimmte Eigenschaften von Frames, Buttons etc. je nach Bedarf ändern. Dies mache ich in universell in einem Modul. Ich übergebe typ(zB. "cmd"), Name(zB. "Button") und Nr.(zB 1) oder welcher Frame bearbeitet wird (zB. Frame1) an die sub.
hier ein kurzes Bsp
Public Sub FoldFrame() ' Frame ausklappen
With Userform1.Controls(AuslösenderFrame)
.Height = AnzahlBtnsImFrame * btnHeight + 3
.Visible = True
End With
End Sub
Jetzt würde ich aber gerne das Programm auf mehrere Userformen verteilen und müsste dazu die Userformen variabel bearbeiten. Die oben gezeigte Sub würde dann in etwa so aussehen: WelcheUserform="Userform1"
Public Sub FoldFrame()
With WelcheUserform.Controls(AuslösenderFrame)
.Height = AnzahlBtnsImFrame * btnHeight + 3
.Visible = True
End With
End Sub
Ich habe etwas versucht mit VBA.Userforms.Add(WelcheUserform) aber das führte zu Stapelfehlern.
Hier nun meine Frage: Wie kann ich eine Userform als Variable deklarieren um zB. die oben aufgeführte Sub so anzusprechen, daß die Controls auf der Userform geändert werden von der der Aufruf kam. Teilweise sind mehrer Subs verschachtelt um alle nötigen Änderungen vorzunehmen.
Falls es nicht schon klar ist: Ich bin ein kompletter Noob was VBA angeht und bräuchte demzufolge eine Antwort für Dummys
Vorab schon mal Dankeschön
MfG
|