AW: Excel VBA
26.04.2018 01:19:00
Sandra
Diese Variante funktioniert nur, wenn sich die Optionsbutton auf demselben respektive überhaupt auf einem Tabellenblatt befinden!
Sub Hintergrundfarbe_aendern ()
for i=1 to 4
if ActiveSheet.OLEObjects("OptionButton" & i).Object.value=true then
ActiveSheet.OLEObjects("OptionButton" & i).Object.BackColor = RGB(, , )'roter RGB-Farbwert
elseif ActiveSheet.OLEObjects("OptionButton" & i).Object.value=false then
ActiveSheet.OLEObjects("OptionButton" & i).Object.BackColor = RGB(, , )'grauer RGB-Farbwert
next i
End Sub
Sind diese auf verschiedene Tabellenblätter verteilt, dann funktioniert der obige Code nicht (gilt auch, wenn diese auf einer Userform sind). Der Code darf in der Entwicklungsumgebung nicht (!) in einem Modul stehen, sondern muss zwingend auf dem jeweiligen Tabellenblatt unter "Microsoft Excel Objekte" stehen. Stehen auf einem Tabellenblatt z. B. zwei Active-X-Steuerelemente dann sieht der Code wie folgt aus:
Sub Hintergrundfarbe_aendern ()
if ActiveSheet.OLEObjects("OptionButton1").Object.value=true then
ActiveSheet.OLEObjects("OptionButton1").Object.BackColor = RGB(, , )'roter RGB-Farbwert
ActiveSheet.OLEObjects("OptionButton2").Object.BackColor = RGB(, , )'grauer RGB-Farbwert
elseif ActiveSheet.OLEObjects("OptionButton2").Object.value=false then
ActiveSheet.OLEObjects("OptionButton2").Object.BackColor = RGB(, , )'roter RGB-Farbwert
ActiveSheet.OLEObjects("OptionButton1").Object.BackColor = RGB(, , )'grauer RGB-Farbwert
end if
End Sub