I'd like some code to run the first time someone opens the file. It's an .xltm file (could be .xlsm though).

How do I execute code the first time someone opens the book, but not the second onwards? I have googled and found people using
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
But I don't understand the code. Is it relevant to my problem? Could someone explain/translate it to English?

I want the code to run a form (simple enough) and also set the file name but NOT actually open the dialogue to save the file.
So when they open the workbook, a form comes up, they enter some details eg. Date and their name and press OK.

Later when they go to save the file, it should do a save as, and the file name should be <name> - <date>.xlsm