In my new attached sample, you can't step forward if you don't have filled properly the required fields in the current step (page).
Every form has its own validation process (IsValid()), which is a public function, accessible of every outer proccess. So, every form validates its own controls, with its own rules, and gives the result to every outer proccess asking it.
So, the wizard's form, has only to manage the browsing from page to page, "asking" from the forms if is it posible, and manage its own controls. The forms, even though are all loaded, user seens only the desired, making more clear what have to input and where, and you don't have to enable/disable their controls, a proccedure that increase the VBA code and is highly prone to errors.
I think, that way makes more easy and safe, and more suitable for you, the solution of step-by-step wizard.
I hope helps you!
Regards,
John
P.S.: If you get errors in "labels" of the "wizard" pages, replace the semicolon with the comma (delimiter) in expressions of their control source.