ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   how can I disable a control in the ribbon at run time (https://www.excelbanter.com/excel-programming/438478-how-can-i-disable-control-ribbon-run-time.html)

irvy

how can I disable a control in the ribbon at run time
 
As an example, in Excel 2007, I have 5 buttons on the ribbon. When I press a
button, it runs code and then it is meant to disable the button. Do you know
how I could do this? Any help would be appreciated.

Ron de Bruin

how can I disable a control in the ribbon at run time
 
Hi irvy

See
http://www.rondebruin.nl/hidevisible.htm

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"irvy" wrote in message ...
As an example, in Excel 2007, I have 5 buttons on the ribbon. When I press a
button, it runs code and then it is meant to disable the button. Do you know
how I could do this? Any help would be appreciated.


Irvy

how can I disable a control in the ribbon at run time
 
Hey Ron,
Thanks for the quick reply. I have checked out your examples. What
they do is actually make the controls invisible. I still want to see
the control but want it disabled. Is that possible?

irvy

Ron de Bruin

how can I disable a control in the ribbon at run time
 
Hi Irvy

You can use getEnabled for a button but not for a group

If you change this in the RibbonX of my example workbook
Hide-Display-Group-Control
You see that it Enable/disable the button instead of hide/unhide it

<button id="customButton5" label="Caption 5" size="large" onAction="Macro5"
imageMso="AccountMenu" getEnabled="GetVisible" tag="MyPersonalControl" /


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Irvy" wrote in message ...
Hey Ron,
Thanks for the quick reply. I have checked out your examples. What
they do is actually make the controls invisible. I still want to see
the control but want it disabled. Is that possible?

irvy


Irvy

how can I disable a control in the ribbon at run time
 
Hi Ron,

I am still having some problems. I am just testing out the process
before I proceed with my actual code but I am getting this error:

"Runtime 91. Object variable or With block variable not set"

Can you tell me why I am getting this error?

Here is my xml code:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?
<customUI onLoad="RibbonOnLoad" xmlns="http://schemas.microsoft.com/
office/2006/01/customui"
<ribbon
<tabs

<tab idMso="TabHome"

<group id="grp1" label="Group1" tag="MyPersonalGroup"
<button id="btn1" label="button1" size="large"
onAction="disableBtn1" getEnabled="GetEnabled"
imageMso="DirectRepliesTo" /
<button id="btn2" label="button2" size="large"
onAction="disableBtn2" getEnabled="GetEnabled" imageMso="AccountMenu" /

</group

</tab

</tabs
</ribbon
</customUI

and here is my vba code:

Option Explicit
Dim Rib As IRibbonUI

'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set Rib = ribbon
End Sub

'Callback for btn1 getEnabled
Sub GetEnabled(control As IRibbonControl, ByRef returnedVal)
returnedVal = True
End Sub

'Callback for btn1 onAction
Sub disableBtn1(control As IRibbonControl)
Dim Rib As IRibbonUI
Rib.InvalidateControl ("btn1")
End Sub

'Callback for btn2 onAction
Sub disableBtn2(control As IRibbonControl)
Dim Rib As IRibbonUI
Rib.InvalidateControl ("btn2")
End Sub


All times are GMT +1. The time now is 05:05 PM.

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