ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   spinbutton enabled = false not changing colour (https://www.excelbanter.com/excel-programming/361388-spinbutton-enabled-%3D-false-not-changing-colour.html)

RB Smissaert

spinbutton enabled = false not changing colour
 
Using Excel 2003.
Have a Userform with many controls.
When doing enabled = false for all commandbuttons and spinbuttons, the
command buttons get greyed out, but the spinbuttons are not.
The code is like this:

Sub DisableAllControls()


Dim ctl As MSForms.Control


For Each ctl In MainForm.Controls
If TypeOf ctl Is MSForms.CommandButton Or _
TypeOf ctl Is MSForms.SpinButton Then
ctl.Enabled = False
End If
Next


End Sub


But even when I just set one individual spinner the result is the same.
They are actually disabled, but they just keep showing as normal. I have
tried to correct this with DoEvents and Userform.Repaint and using the Sleep
API function, but to no avail.
Would there be any solution for this other than doing Visible = False?
When do exactly the same on a little demo form all is fine.
Thanks for any advice.


RBS


Harald Staff

spinbutton enabled = false not changing colour
 
Hi RB

Can't reproduce the error here, your code works fine.
What is "many controls" ? If that is 200 some, then my experience is that
userforms may get unstable.

HTH. Best wishes Harald

"RB Smissaert" skrev i melding
...
Using Excel 2003.
Have a Userform with many controls.
When doing enabled = false for all commandbuttons and spinbuttons, the
command buttons get greyed out, but the spinbuttons are not.
The code is like this:

Sub DisableAllControls()


Dim ctl As MSForms.Control


For Each ctl In MainForm.Controls
If TypeOf ctl Is MSForms.CommandButton Or _
TypeOf ctl Is MSForms.SpinButton Then
ctl.Enabled = False
End If
Next


End Sub


But even when I just set one individual spinner the result is the same.
They are actually disabled, but they just keep showing as normal. I have
tried to correct this with DoEvents and Userform.Repaint and using the

Sleep
API function, but to no avail.
Would there be any solution for this other than doing Visible = False?
When do exactly the same on a little demo form all is fine.
Thanks for any advice.


RBS




RB Smissaert

spinbutton enabled = false not changing colour
 
It is over 200 controls.
Apart from this everything else works fine.
It isn't really a major problem as the spinners are disabled
and I can set the backcolor, but I would like to fix if possible.

RBS

"Harald Staff" wrote in message
...
Hi RB

Can't reproduce the error here, your code works fine.
What is "many controls" ? If that is 200 some, then my experience is that
userforms may get unstable.

HTH. Best wishes Harald

"RB Smissaert" skrev i melding
...
Using Excel 2003.
Have a Userform with many controls.
When doing enabled = false for all commandbuttons and spinbuttons, the
command buttons get greyed out, but the spinbuttons are not.
The code is like this:

Sub DisableAllControls()


Dim ctl As MSForms.Control


For Each ctl In MainForm.Controls
If TypeOf ctl Is MSForms.CommandButton Or _
TypeOf ctl Is MSForms.SpinButton Then
ctl.Enabled = False
End If
Next


End Sub


But even when I just set one individual spinner the result is the same.
They are actually disabled, but they just keep showing as normal. I have
tried to correct this with DoEvents and Userform.Repaint and using the

Sleep
API function, but to no avail.
Would there be any solution for this other than doing Visible = False?
When do exactly the same on a little demo form all is fine.
Thanks for any advice.


RBS





RB Smissaert

spinbutton enabled = false not changing colour
 
Try again, but now when the spinbutton has a backcolor set before doing
Enable = False.
I picked this backcolor: 15001309, but may not matter.
So, this trouble is caused by the backcolor being set, not anything else.
Note that the commandbutton doesn't have this problem.

RBS

"Harald Staff" wrote in message
...
Hi RB

Can't reproduce the error here, your code works fine.
What is "many controls" ? If that is 200 some, then my experience is that
userforms may get unstable.

HTH. Best wishes Harald

"RB Smissaert" skrev i melding
...
Using Excel 2003.
Have a Userform with many controls.
When doing enabled = false for all commandbuttons and spinbuttons, the
command buttons get greyed out, but the spinbuttons are not.
The code is like this:

Sub DisableAllControls()


Dim ctl As MSForms.Control


For Each ctl In MainForm.Controls
If TypeOf ctl Is MSForms.CommandButton Or _
TypeOf ctl Is MSForms.SpinButton Then
ctl.Enabled = False
End If
Next


End Sub


But even when I just set one individual spinner the result is the same.
They are actually disabled, but they just keep showing as normal. I have
tried to correct this with DoEvents and Userform.Repaint and using the

Sleep
API function, but to no avail.
Would there be any solution for this other than doing Visible = False?
When do exactly the same on a little demo form all is fine.
Thanks for any advice.


RBS





Harald Staff

spinbutton enabled = false not changing colour
 
"RB Smissaert" skrev i melding
...
Try again, but now when the spinbutton has a backcolor set before doing
Enable = False.
I picked this backcolor: 15001309, but may not matter.
So, this trouble is caused by the backcolor being set, not anything else.
Note that the commandbutton doesn't have this problem.


I see. That makes kinda sense.
But "don't" then <g. Some things in life doesn't combine and we usually
have to live with that.
Thank you for the insight though. We live and we learn.

Best wishes Harald



RB Smissaert

spinbutton enabled = false not changing colour
 
I need the backcolor, but doing:
ctl.ForeColor = vbButtonShadow
simulates a disabled state and that is good enough in my case.
Still, always interested in a better solution.

RBS

"Harald Staff" wrote in message
...
"RB Smissaert" skrev i melding
...
Try again, but now when the spinbutton has a backcolor set before doing
Enable = False.
I picked this backcolor: 15001309, but may not matter.
So, this trouble is caused by the backcolor being set, not anything else.
Note that the commandbutton doesn't have this problem.


I see. That makes kinda sense.
But "don't" then <g. Some things in life doesn't combine and we usually
have to live with that.
Thank you for the insight though. We live and we learn.

Best wishes Harald




Harald Staff

spinbutton enabled = false not changing colour
 
Ah! Clever workaround. Thanks.

Best wishes Harald

"RB Smissaert" skrev i melding
...
I need the backcolor, but doing:
ctl.ForeColor = vbButtonShadow
simulates a disabled state and that is good enough in my case.
Still, always interested in a better solution.

RBS




RB Smissaert

spinbutton enabled = false not changing colour
 
Strangely, if you do:
ctl.Enabled = False
ctl.ForeColor = vbButtonShadow

the ForeColor won't be vbButtonShadow.

Same if you do:
ctl.ForeColor = vbButtonShadow
ctl.Enabled = False

RBS


"Harald Staff" wrote in message
...
Ah! Clever workaround. Thanks.

Best wishes Harald

"RB Smissaert" skrev i melding
...
I need the backcolor, but doing:
ctl.ForeColor = vbButtonShadow
simulates a disabled state and that is good enough in my case.
Still, always interested in a better solution.

RBS






All times are GMT +1. The time now is 10:06 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com