Option Buttons

H

HSalim[MVP]

Hi,
I have a workbook with a few VBA macros. Some of those macros are assigned
to a custom toolbar.
On that custom toolbar, I want to add a checkbox or option button, to
indicate a true/false state.
If true then checked image else unchecked image
I need this in some coditional programming in a macro, I will need to check
the state of the checkbox when the macro is executed.

Is this possible on a toolbar?

Thanks in advance
Habib
 
B

Bob Phillips

This is an example of code that sets/unsets a checkmark when a menu is
clicked, It goes in the macro assigned to the menu item in OnAction.

With Application.CommandBars.ActionControl
If .State = msoButtonUp Then
ActiveWorkbook.Worksheets(.Caption).Visible = xlSheetHidden
.State = msoButtonDown
Else
ActiveWorkbook.Worksheets(.Caption).Visible = xlSheetVisible
.State = msoButtonUp
End If
End With

Set it initially like so

Set octl = CommandBars("Worksheet Menu Bar").Controls("Tools").Controls("My
Test")
oCtl.State = msoButtonDown


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
H

HSalim[MVP]

Bob
Thanks for the quick reply.
I'm not using menus - that is an option I could consider
Is there a way to do this using just toolbars?

From what I have been reading, I think I'll have to reset the toolbar button
face image.
I know that these are special image files, so I guess I have some more
digging to do...
Regards
HS

--
www.DynExtra.com
A resource for the Microsoft Dynamics Community
Featuring FAQs, File Exchange and more
Current member count: 40
 
B

Bob Phillips

No, on toolbars setting the state property makes it looked raised or not.

You could try something like this, that creates a pseudo-checkmark

Sub BuildMenu()

With Application.CommandBars.Add(Name:="Test", temporary:=True)

With .Controls.Add(Type:=msoControlButton)
.Caption = "check"
.Style = msoButtonIcon
.Tag = "checked"
.FaceId = 1087
.OnAction = "checkMe"
End With

With .Controls.Add(Type:=msoControlButton)
.Caption = "myMacro"
.Style = msoButtonCaption
.FaceId = 1087
.OnAction = "myMacro"
End With

.Visible = True

End With

End Sub

Sub checkme()

With Application.CommandBars.ActionControl

If .Tag = "checked" Then
.Tag = "unchecked"
.FaceId = 1091
Else
.Tag = "checked"
.FaceId = 1087
End If

End With

End Sub

Sub myMacro()

MsgBox Application.CommandBars("Test").Controls("check").Tag
End Sub



--

HTH

Bob Phillips

(replace xxxx in the email address with gmail if mailing direct)
 
H

HSalim[MVP]

Thanks Bob!
Exactly what i needed.
regards
Habib


--
www.DynExtra.com
A resource for the Microsoft Dynamics Community
Featuring FAQs, File Exchange and more
Current member count: 40
--------------------------------------------
Share your knowledge. Add your favorite questions and answers
Help add questions to this site! We want Your input.
--------------------------------------------
Bob Phillips said:
No, on toolbars setting the state property makes it looked raised or not.

You could try something like this, that creates a pseudo-checkmark

Sub BuildMenu()

With Application.CommandBars.Add(Name:="Test", temporary:=True)

With .Controls.Add(Type:=msoControlButton)
.Caption = "check"
.Style = msoButtonIcon
.Tag = "checked"
.FaceId = 1087
.OnAction = "checkMe"
End With

With .Controls.Add(Type:=msoControlButton)
.Caption = "myMacro"
.Style = msoButtonCaption
.FaceId = 1087
.OnAction = "myMacro"
End With

.Visible = True

End With

End Sub

Sub checkme()

With Application.CommandBars.ActionControl

If .Tag = "checked" Then
.Tag = "unchecked"
.FaceId = 1091
Else
.Tag = "checked"
.FaceId = 1087
End If

End With

End Sub

Sub myMacro()

MsgBox Application.CommandBars("Test").Controls("check").Tag
End Sub



--

HTH

Bob Phillips

(replace xxxx in the email address with gmail if mailing direct)
 
H

HSalim[MVP]

Hi Bob,
Dynamics is the business management software line, comprising of 4 ERP or
accounting software packages and CRM - Dynamics AX/NAV/GP/SL/CRM
formerly known as Axapta, Navision, Great Plains and Solomon and Microsoft
CRM
Also included are Small Business Financials, RMS for Retail Management
Systems or Point of sale (cash registers etc)

The 4 ERP systems were acquisitions and are converging to a common codebase
at some point in the future. MS is putting a lot of effort into growing
this side of the business.

HS


--
www.DynExtra.com
A resource for the Microsoft Dynamics Community
Featuring FAQs, File Exchange and more
Current member count: 40
--------------------------------------------
Share your knowledge. Add your favorite questions and answers
Help add questions to this site! We want Your input.
--------------------------------------------
Bob Phillips said:
Habib,

What exactly are Dynamics?

Bob
 
B

Bob Phillips

Thanks Habib. Must look a little deeper.

Bob

HSalim said:
Hi Bob,
Dynamics is the business management software line, comprising of 4 ERP or
accounting software packages and CRM - Dynamics AX/NAV/GP/SL/CRM
formerly known as Axapta, Navision, Great Plains and Solomon and Microsoft
CRM
Also included are Small Business Financials, RMS for Retail Management
Systems or Point of sale (cash registers etc)

The 4 ERP systems were acquisitions and are converging to a common codebase
at some point in the future. MS is putting a lot of effort into growing
this side of the business.

HS


--
www.DynExtra.com
A resource for the Microsoft Dynamics Community
Featuring FAQs, File Exchange and more
Current member count: 40
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top