You can use goto command as stated below;
code....
reerun:
code......
code.....
goto reerun
code...
For your first problem, as Craig Gross mention below you can use "User Form"
with ShowModal = False, further if you want, you can set the apperance similar
to msg box while disigning,
After the form activate event you can do what ever the changes you want to do
to the spreadsheet. (you can do this without any problem since the ShowModal =
False)
When, upon hitting a button on the user form (which you have disign like msb
box) the program will resume