I use a toolbar setup in a workbook module that installs a toolbar on the
user's computer in an Auto_Open event. The toolbar code is followed by the macro
code. In the toolbar setup code, set the button(s) to run the macro(s) contained
in the same module. When the toolbar installs, it automatically links the path,
file, and macro location to the button(s) and make it(them) available to the
user. If modifications need to be made to the macro(s), they are made in one
location and does not affect any user that has the toolbar installed. As long as
the path/file/module/macro names remain the same, any toolbar installed will
always work correctly. If the file is moved, renamed, etc... for some reason, a
link to the new file location can be sent to users. They open the file once,
install the new toolbar, which also deletes the old toolbar, the link is
recreated. I have several files currently beings used by my group and they
couldn't be happier. If someone asks me if I can pluck some other type of data
out of a spreadsheet, I copy the current file, add the code, and paste the file
over the current copy. If it requires another button, then I do the same thing,
only I add another button to the toolbar setup code and send the users a link
that will open the file and install the new toolbar. The next time anyone
accesses the macro they see the change. I use a MsgBox with vbYes vbNo to ask
the user if they want to install the toolbar as a way to prevent it from
installing inadvertently and to keep the file open. I use the vbNo to stop the
macro, leaving the workbook open for changes. vbYes installs the toolbar and
closes using ThisWorkbook.Close. I always include a Remove Toobar button on
every toolbar.