Links broken when spreadsheet emailed

W

Wannabe

I created a spreadsheet template that has some VBA code in it, then created
two buttons to call the methods. This way, the person did not have to go to
tools, macros and find the one they needed. But when I emailed the
spreadsheet to the user, they pressed the toolbar button and it held a
reference to my computer instead of the worksheet like I thought. When I
originally set it up, I assigned the toolbar button to "ThisWorkbook.MyMacro"
and thought this would carry over to another computer without messing up the
reference. How can I prevent this from happening so a user will not have to
reassign the toolbar buttons each time it is emailed?
 
J

Jon Peltier

I don't know where this syntax came from:

"ThisWorkbook.MyMacro"

It should be assigned to

"'My Workbook Name.xls'!MyMacro"

Note that the workbook name is surrounded with single quotes if it contains
dashes or spaces.

- Jon
 
D

DownThePaint

Hi Wannabe;

Try creating drawing objects and make them buttons instead of using a custom
toolbar. Then assign the macros to the drawing objects.

Thanks,
 
J

Jon Peltier

If your irregular syntax comes from having the macros on the ThisWorkbook
code module, you should move them to a regular module. Then assign them to
the buttons as I described.

- Jon
 
W

Wannabe

That syntax comes from when I choose customize toolbar and then right click
the toolbar button and select assign macro. Then I can choose to use Macros
in "This Workbook", "all open workbooks", and the one that has my spreadsheet
name.

The reason I picked This Workbook is because since I am using a template, I
cannot know for certain the name of the workbook since the name of new
workbooks based on the template will be prefixed with a number. Am I
incorrect in assuming which I should use?

I am using Excel 2003 if it is different from any other version also.
 
W

Wannabe

That was it...I had my methods in the ThisWorkbook, thinking they would port
that way. Thanks.
 
J

Jon Peltier

Just select the macro. The link will officially be "'Workbook
Name.xls'!MyMacro" or "'Template Name.xlt'!MyMacro". When you create a new
file from the template containing the macro, the new file is automatically
linked to the macro in the new file itself. If you copy the template in
Windows Explorer and rename it, the renamed file when opened is linked to
the macro in the renamed file.

Working with an attached toolbar is problematic. It's better to have the
workbook create its toolbar when it is opened and destroy it when it closes.
John Walkenbach discusses the technique on his web site:
http://www.j-walk.com/ss/excel/tips/tip53.htm

- Jon
 

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