ToggleButtons mit Function
18.08.2022 10:09:08
Barolt
Ich bin ein beginnender VBA "Programmierer" mit etwas erfahrung. Hoffe hier wieder einen Denkanstoß zu bekommen. Lösung an sich muss nicht sein da ich gerne selber weiter "Puzzle". Ich trainiere mich gerade auf Functionen zu schreiben.
Ausgangspunkt ist ein UserForm1 mit 2 ToggleButtons.
Wenn ich ToggleButton1 auf "True" setze, werden die andere ToggleButtons automatisch "False" gesetzt
Bis Jetzt habe ich das gelöst durch jede einzelne ToggleButton mit eine "If-Schleife" zu programmieren. Die folge ist das ich viel Code habe. (Bei 2 Übersichtlich aber bei mehrere ToggleButtons, viel Code)
Jetzt übe ich mich in schreiben von Functionen und habe versucht obenstehende anders zu lösen. Was leider nur bedingt klappt und ich finde mein Denkfehler einfach nicht.
Private Sub ToggleButton1_Change()
Dim MyStr
MyStr = MyFunc("ToggleButton1")
End Sub
Private Sub ToggleButton2_Change()
Dim MyStr
MyStr = MyFunc("ToggleButton2")
End Sub
Function MyFunc(MyStr As String)
Select Case MyStr
Case Is = "ToggleButton1"
With UserForm1
.ToggleButton1 = True
.ToggleButton2 = False
.BackColor = vbRed
End With
Case Is = "ToggleButton2"
With UserForm1
.ToggleButton1 = False
.ToggleButton2 = True
.BackColor = vbGreen
End With
End Select
End Function
Folgendes Passiert: Formular wird gestartet und beim Klicken auf ToggelButton1 wird, wie erwartet den userform backcolor rot. Klick ich auf ToggleButton2 wird der BackColor grün und(! wichtig) ToggleButton1 wird auf Falsch gesetzt. Klick ich dann wieder auf ToggleButton2 wird der BackColor zwar grün aber ToggleButton1 setzt sich nicht auf Falsch!!? Was habe ich da übersehen?
Auch wenn ich ein click Event ("ToggleButton1_Click()") mache passiert nichts anderes
Vielen Dank für ein Denkanstoß/Hilfe