I have a spreadsheet that has multiple sheets that I have programmed multiple print option macros. Each sheet has three print option macros: 1 to print all pages in the sheet, another will print only the last two pages (the scorecard) of the sheet, and a final one that will print only the first page (the smart goal) of the sheet. I have consistently named the macros for each of my 15 sheets (PP_DF1, PP_DF2, etc. to print all pages, SC_DF1, SC_DF2, etc. for printing the scorecard, and SG_DF1, SG_DF2, etc. to print only the smart goal).

On my Print Options sheet, I have a data validation that I have used the name reference of "printchoice" where the user will select the sheet name they want to print. There are then three buttons - one to print all pages, one to print the scorecard, and one to print the smart goal.

I also have a table on the same Print Options sheet that lists the Sheet and then the three macros associated with that sheet so that I can use vlookup. The table looks like:

SHEET PRINT ALL SCORE CARDS SMART GOALS
DF1 PP_DF1 SC_DF1 SG_DF1
DF2 PP_DF2 SC_DF2 SG_DF2


I know that I should be able to do this with a sheetchange event, but I don't want the macro to run just when a user selects the sheet they want to print. I want them to choose the sheet, then click the button that identifies what pages within the sheet they want to print.

Everything in my sheet is named - I'm a bit OCD about naming ranges and cells and tables!

So if you can let me know how I should program this, I would really appreciate it. I've tried a few things I saw on other posts, but I'm just not getting it somehow. ARGH!

FYI - the file is over 2 MB, so I can't upload it in its entirety. But this is a word document that has some code and images of what I'm trying to do.
print options macro help.docx