Execute/Create Ribbon through vba Code

mAP3d

New Member
Joined
Sep 30, 2015
Messages
12
hi guys,

I am currently optimizing a project system which has about 300 controls, divided in 9 groups (every group has about 5-20 sub menus), currently stored in the 'Add-Ins' tab. Because of usability, I used the custom ui editor in the last days to put this hierarchy into a ribbon bar, which is placed before the Home Tab, and gets loaded when anyone opens the .xlsm file (I call it 'parent-file' in this post). everything works quite fine, the controls are dynamic and users are able to change the language in the menu, when they do, the labels invalidate and get their translated pendant.

now I am on the next stage of this project, as there are certain .doc or .ppt files, which get executed/requested/edited from time to time, and till now, have their 'Add-Ins' controls to do certain things. My question is now: Is it possible to create a ribbon which has like the same characteristics as the one I already created? it should open, as someone executes the .doc/.ppt/..., and close again, when the file is closed (through the vba-procedure, of course). as u could imagine, I am searching the web for something since 3 days. I guess I almost found any possible solution, also tried a lot, but every way got his own issues imo.

to sum this up: First of all: I already know the CUSTOM UI EDITOR! pls do not tell me that it is way easier to edit the ribbon through this neat little program, as it is not practical for the problem I am facing
opening the .xlsm file as a zip and editing the customui14 file with editor i.e., is also no option, same reasons as above.

I would highly appreciate it, if there was anyone who could give me a glimpse, if it is over-all worth it, or if I would be better advised in staying with the Add-Ins controls.

this is kind of my last address to get possible information from, since the msdn post (https://social.msdn.microsoft.com/F...te-ribbon-bar-through-vba-code?forum=exceldev), I started a few days ago, seems to be dead.
my last option would be the book "RibbonX", since I read a lot of good stuff about it, and, on top of that, know, that It has a certain section for my kind of problem ("there is a section that builds a ribbon on the fly in vba") (UtterAccess Forums > Create New Ribbon Category/buttons W/vba).

I know that this text may be pure rape for native speakers, but I am trying my best guys, so please be patient.

thanks in advance guys (!!), feel free to ask anything if I may have missed important information
 
If they are opening in the same instance of Excel, you could simply add the relevant tabs/groups/etc to your parent workbook ribbon and hide/show them as required using getVisible callbacks, or you could explicitly load another file (eg Add-in) that contains the ribbon you want and then unload that when you're done.
 
Upvote 0

Excel Facts

Formula for Yesterday
Name Manager, New Name. Yesterday =TODAY()-1. OK. Then, use =YESTERDAY in any cell. Tomorrow could be =TODAY()+1.

Forum statistics

Threads
1,215,422
Messages
6,124,808
Members
449,191
Latest member
rscraig11

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top