This is a little off topic but I do totally understand why people create a module for all "Public" variables so that can be used throughout the entire project but I tend to shy away from that. This is only a personal preference.
At best, I will put all variables being used by a particular "module" at the top in the declarations section; however, I sometimes declare my variables abovethe code as I am writing the code in order to keep the variables necessary for that portion of code with the code.
I just like to be able to see the variables right in front of me as I am doing the programming. In this case, those variables are only necessary for a small section in the program.
Of course, if you need to declare like 30, 40 or whatever variables that are being used across a project then you definitely need to do something global.
I guess there is really no write way, I just hate having to go looking for what variable I need when I need it.
In the case of a userform related project, then I guess that a public variable module really does make a lot of sense.
Mark