Morning Jon
Ah yes Debug.assert, I have used it before but for some reason find myself not using proactively. Maybe its because I tend to remove debug statements from completed functions/subroutines so avoid using it entirely.
I should be able solve 2nd problem by tweaking the loop logic and I have had some confirmation on the Userform_Initialize event trigger problem. Apparently, "when the form (or any object or variable on the form) is referenced the form is initialized and afaik it can not be avoided". I'm going to test moving the code in the initialize event to the activate instead to see if the project performs as normal and to prevent execution code that should only be used when the form is loaded.
Thanks again