Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 10
Default CommandBarControl object

I want to embed a custom menu in an old (working) spreadsheet.

I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.

WHY?

If it works on its own, why won't it work in my spreadsheet?

I have been struggling with this for too many hours now so any help will be
greatly appreciated.

Thanks,
Fred
  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default CommandBarControl object

Maybe qualifying it would help:

Dim xxx as application.commandbarcontrol



Fred Davis wrote:

I want to embed a custom menu in an old (working) spreadsheet.

I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.

WHY?

If it works on its own, why won't it work in my spreadsheet?

I have been struggling with this for too many hours now so any help will be
greatly appreciated.

Thanks,
Fred


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 897
Default CommandBarControl object

CommandBars are part of the Office object library, I believe it would
be

Dim xxx As Office.CommandBarControl

HTH,
JP


On Mar 3, 5:03*pm, Dave Peterson wrote:
Maybe qualifying it would help:

Dim xxx as application.commandbarcontrol





Fred Davis wrote:

I want to embed a custom menu in an old (working) spreadsheet.


I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. *However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.


WHY?


If it works on its own, why won't it work in my spreadsheet?


I have been struggling with this for too many hours now so any help will be
greatly appreciated.


  #4   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default CommandBarControl object

Thanks for the correction.

JP wrote:

CommandBars are part of the Office object library, I believe it would
be

Dim xxx As Office.CommandBarControl

HTH,
JP

On Mar 3, 5:03 pm, Dave Peterson wrote:
Maybe qualifying it would help:

Dim xxx as application.commandbarcontrol





Fred Davis wrote:

I want to embed a custom menu in an old (working) spreadsheet.


I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.


WHY?


If it works on its own, why won't it work in my spreadsheet?


I have been struggling with this for too many hours now so any help will be
greatly appreciated.



--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 10
Default CommandBarControl object

Hi Dave (and JP),

Thank you both for your suggestions, but neither 'application.' nor
'office.' makes any difference.

What I really do not understand is the code works in its own spreadsheet,
but fails with a compile error when I put it in my existing spreadsheet.
Could it be that my spreadsheet was created in an older version of Excel and
is missing some add-in or other?

By the way, the code I have downloaded comes from the file
'AddingCustomMenus.zip'. on Ozgrid

Very confused,
Fred


"Dave Peterson" wrote:

Maybe qualifying it would help:

Dim xxx as application.commandbarcontrol



Fred Davis wrote:

I want to embed a custom menu in an old (working) spreadsheet.

I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.

WHY?

If it works on its own, why won't it work in my spreadsheet?

I have been struggling with this for too many hours now so any help will be
greatly appreciated.

Thanks,
Fred


--

Dave Peterson



  #6   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 10
Default CommandBarControl object

Hi guys,

I have just created a brand new spreadsheet and cut and pasted the offending
code into it. Guess what - it works!

So, what is missing from my old spreadsheet that is stopping the code
working?

Re-building the old spreadsheet under my current version is definitely a
'LAST RESORT'. I don't want to even think about it!

Fred

"Fred Davis" wrote:

Hi Dave (and JP),

Thank you both for your suggestions, but neither 'application.' nor
'office.' makes any difference.

What I really do not understand is the code works in its own spreadsheet,
but fails with a compile error when I put it in my existing spreadsheet.
Could it be that my spreadsheet was created in an older version of Excel and
is missing some add-in or other?

By the way, the code I have downloaded comes from the file
'AddingCustomMenus.zip'. on Ozgrid

Very confused,
Fred


"Dave Peterson" wrote:

Maybe qualifying it would help:

Dim xxx as application.commandbarcontrol



Fred Davis wrote:

I want to embed a custom menu in an old (working) spreadsheet.

I have downloaded a number of pre-written solutons which all work when used
in the original spreadsheet downloaded. However, when I cut and paste the
code into my spreadsheet I get the compiler error "User-defined type not
defined" on the statement _dim xxx as CommandBarControl_.

WHY?

If it works on its own, why won't it work in my spreadsheet?

I have been struggling with this for too many hours now so any help will be
greatly appreciated.

Thanks,
Fred


--

Dave Peterson

  #7   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 897
Default CommandBarControl object

Can you post the code?

--JP

On Mar 4, 5:12*am, Fred Davis
wrote:
Hi guys,

I have just created a brand new spreadsheet and cut and pasted the offending
code into it. *Guess what - it works!

So, *what is missing from my old spreadsheet that is stopping the code
working?

Re-building the old spreadsheet under my current version is definitely a
'LAST RESORT'. *I don't want to even think about it!

Fred


  #8   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 10
Default CommandBarControl object

Hi JP,

I don't know if it's possible to attach files to these posts so here is the
code lonhand:



Sub AddMenus()
Dim cMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Integer
Dim cbcCutomMenu As CommandBarControl

'(1)Delete any existing one. We must use On Error Resume next _
in case it does not exist.
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("&New Menu").Delete
On Error GoTo 0

'(2)Set a CommandBar variable to Worksheet menu bar
Set cbMainMenuBar = _
Application.CommandBars("Worksheet Menu Bar")

'(3)Return the Index number of the Help menu. We can then use _
this to place a custom menu before.
iHelpMenu = _
cbMainMenuBar.Controls("Help").Index

'(4)Add a Control to the "Worksheet Menu Bar" before Help.
'Set a CommandBarControl variable to it
Set cbcCutomMenu = _
cbMainMenuBar.Controls.Add(Type:=msoControlPopup, _
Befo=iHelpMenu)

'(5)Give the control a caption
cbcCutomMenu.Caption = "&New Menu"

'(6)Working with our new Control, add a sub control and _
give it a Caption and tell it which macro to run (OnAction).
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Menu 1"
.OnAction = "MyMacro1"
End With
'(6a)Add another sub control give it a Caption _
and tell it which macro to run (OnAction)
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Menu 2"
.OnAction = "MyMacro2"
End With
'Repeat step "6a" for each menu item you want to add.


'Add another menu that will lead off to another menu
'Set a CommandBarControl variable to it
Set cbcCutomMenu = cbcCutomMenu.Controls.Add(Type:=msoControlPopup)
' Give the control a caption
cbcCutomMenu.Caption = "Ne&xt Menu"

'Add a contol to the sub menu, just created above
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "&Charts"
.FaceId = 420
.OnAction = "MyMacro2"
End With



End Sub

Sub DeleteMenu()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("&New Menu").Delete
On Error GoTo 0
End Sub

Thanks for your interest.
Fred

"JP" wrote:

Can you post the code?

--JP

On Mar 4, 5:12 am, Fred Davis
wrote:
Hi guys,

I have just created a brand new spreadsheet and cut and pasted the offending
code into it. Guess what - it works!

So, what is missing from my old spreadsheet that is stopping the code
working?

Re-building the old spreadsheet under my current version is definitely a
'LAST RESORT'. I don't want to even think about it!

Fred



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
embedded pdf object [email protected] Excel Worksheet Functions 1 October 8th 07 04:32 PM
Can't insert the object Madina Nizamitdin Excel Discussion (Misc queries) 3 September 13th 07 12:28 PM
Object Variable Not Set Error on Selection object Jean Excel Worksheet Functions 3 July 24th 06 06:45 PM
can not insert object willpwr Excel Worksheet Functions 0 June 27th 06 06:34 PM
Object Frank Xia Setting up and Configuration of Excel 0 March 3rd 06 12:08 AM


All times are GMT +1. The time now is 03:15 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"