Durchnummerierte Userforms gemeinsam ansprechen
Betrifft: Durchnummerierte Userforms gemeinsam ansprechen
von: Michael Schneyder
Geschrieben am: 17.09.2014 12:05:35
Hallo,
meine letzten 2 Fragen konnte ich durch herumtüfteln und mit ein paar kleinen Hinweisen selbst lösen, aber hier fehlt mir schlichtweg das Wissen, ob so etwas überhaupt möglich ist:
Ich habe zahlreiche UFs zwischen denen ich hin und herschalten kann. Auf diesen UFs befindet sich immer der gleiche Aufbau aus Buttons, die ich nach Aufruf der UF einzeln anwählen kann (wie Togglebuttons, nur sinds halt 5 pro UF). Der Druck auf so einen Button öffnet eine weitere UF im Vordergrund. Das klappt auch alles!
Insgesamt habe ich 5 UFs mit jeweils 5 Buttons drauf und für jeden Button eine weitere UF. Für das korrekte Umschalten dieser Buttons verwende ich einen Code, wie z.B. den (wobei F4TB1 ein Button ist):
Private Sub F4TB1_Change()
If F4TB1.Value = True Then
For i = 1 To 5
If i <> 1 Then
Me.Controls("F4TB" & i).Value = False 'damit schalte ich alle anderen inaktiv
End If
Next
If Not UForm Is Nothing Then Unload UForm
UFF4F1.Show
Set UForm = UFF4F1
Else
Exit Sub
End If
End Sub
Die Frage ist, ob es eine Möglichkeit gibt (wie bei me.controls) auch Userforms mit "zusammengebastelten" Namen anzusprechen und mir so 25 mal den selben Code zu ersparen - z.B. über ein Klassenmodul, wo ich alle Buttons reinschmeiß. z.B. so??:
UNGETESTET!!!
KLASSENMODUL
Private Sub ButtonGroup_Change()
If "AuslösenderButton".Value = True Then
For Frame = 1 to 5
For i = 1 To 5
If i <> Frame Then
Me.Controls("F" & Frame & "TB" & i).Value = False
End If
Next
If Not UForm Is Nothing Then Unload UForm
"UFF" & Frame & "F" & i.Show
Set UForm = "UFF" & Frame & "F" & i
next Frame
Else
Exit Sub
End If
End Sub
Vielleicht hat ja jemand eine Idee dazu. DANKE im Voraus und LG
Michael
 |
Betrifft: AW: Durchnummerierte Userforms gemeinsam ansprechen
von: Michael Schneyder
Geschrieben am: 17.09.2014 16:40:08
Hallo in die Runde,
ich bin wieder ein Stück weiter. Das Klassenmodul habe ich hinbekommen! Er öffnet auch die Userforms und schaltet alle Buttons um:
Option Explicit
Public WithEvents TBGroup1 As MSForms.ToggleButton
Private Sub TBGroup1_Change()
If TBGroup1.Value = True Then
For i = 1 To 5
If i <> Right(TBGroup1.Name, 1) Then
UFHauptmenue.Controls(Left(TBGroup1.Name, 4) & i).Value = False
End If
Next
If Not UForm Is Nothing Then Unload UForm
UFormName = "UFF" & Mid(TBGroup1.Name, 2, 1) & "F" & Right(TBGroup1.Name, 1)
Set UForm = UserForms.Add(UFormName)
UForm.Show
Else
Exit Sub
End If
End Sub
ABER: aus irgendeinem Grund startet er bei der ausgewählten UF das Initialize-Ereignis jetzt 2 Mal und öffnet 2 Mal die gleiche UF. Habt ihr eine Idee warum???
LG und DANKE
Beiträge aus den Excel-Beispielen zum Thema "Durchnummerierte Userforms gemeinsam ansprechen"