im Rahmen eines Tools habe ich ca. 200 Optionsfelder (Formularsteuerelement)
mit Hilfe von Gruppenfeldern zusammengefasst (5 OptFelder pro GroupBox).
Zunächst habe ich mehrere Makros aufgezeichnet und mit CommandButtons verknüpft, mit deren Hilfe ich verschiedene OptFelder zurücksetzen kann. Das war schon recht aufwendig, leider konnte ich eine For-Schleife für das Ansprechen mehrerer Felder nicht realisieren.
ActiveSheet.Shapes.Range(Array("OptionButton1")).Select
With Selection
.Value = xlOff
.LinkedCell = "Berechnung!$C$3"
.Display3DShading = False
End With
ActiveSheet.Shapes.Range(Array("OptionButton2")).Select
With Selection
.Value = xlOff
.LinkedCell = "Berechnung!$C$3"
.Display3DShading = False
End With
ActiveSheet.Shapes.Range(Array("OptionButton3")).Select
With Selection
.Value = xlOff
.LinkedCell = "Berechnung!$C$3"
.Display3DShading = False
Für den Benutzer sind womöglich nicht alle 200 Optionsfelder relevant, daher habe ich eine Möglichkeit gesucht, um bei einem Klick auf eine Form die entsprechenden Zeilen mit den Optionsfeldern auszublenden. Das funktioniert und sieht wie folgt aus:
Sub Wettbewerber_color()
With ActiveSheet.Shapes(Application.Caller).Fill.ForeColor
If .RGB RGB(112, 171, 71) Then 'wenn Farbe nicht grün
.RGB = RGB(112, 171, 71) 'dann mach es grün
Worksheets("CET").Rows("5:6").Hidden = False
Worksheets("CET").Shapes("OptionButton1").Visible = True
Worksheets("CET").Shapes("OptionButton2").Visible = True
Worksheets("CET").Shapes("OptionButton3").Visible = True
Worksheets("CET").Shapes("OptionButton4").Visible = True
Worksheets("CET").Shapes("OptionButton5").Visible = True
Worksheets("CET").Shapes("OptionButton6").Visible = True
Worksheets("CET").Shapes("OptionButton7").Visible = True
Worksheets("CET").Shapes("OptionButton8").Visible = True
Worksheets("CET").Shapes("OptionButton9").Visible = True
Worksheets("CET").Shapes("OptionButton10").Visible = True
Else
.RGB = RGB(175, 172, 171) 'ansonsten mach es grau
Worksheets("CET").Rows("5:6").Hidden = True
Worksheets("CET").Shapes("OptionButton1").Visible = False
Worksheets("CET").Shapes("OptionButton2").Visible = False
Worksheets("CET").Shapes("OptionButton3").Visible = False
Worksheets("CET").Shapes("OptionButton4").Visible = False
Worksheets("CET").Shapes("OptionButton5").Visible = False
Worksheets("CET").Shapes("OptionButton6").Visible = False
Worksheets("CET").Shapes("OptionButton7").Visible = False
Worksheets("CET").Shapes("OptionButton8").Visible = False
Worksheets("CET").Shapes("OptionButton9").Visible = False
Worksheets("CET").Shapes("OptionButton10").Visible = False
End If
End With
End Sub
Jetzt habe ich das Problem, dass ich den Resetbutton nicht mehr betätigen kann, wenn die OptFelder ausgeblendet sind. Eine If-Bedingung (Reset nur, wenn OptionsButton.Visible = True) habe ich nicht realisieren können - außerdem möchte ich ungerne für alle 200 von Hand aufgezeichneten Resetfunktionen eine If-Anweisung nachträglich einfügen.Für Input jeder Art bin ich dankbar, beste Grüße
Arni