Durchnummerierte Userforms gemeinsam ansprechen
17.09.2014 12:05:35
Michael
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