La difficulté ce n'est pas le système lui même (L'initialisation du WorkBook)
La difficulté réside dans la compétence du programmeur : Quand on est un programmeur lambda comme moi, on fait beaucoup d'erreurs qui font régulièrement planter VBA.
A l'occasion des erreurs les plus graves le classeur n'est pas sauvegardé lors de la fermeture (puisque Excel à planté) donc le BeforeCose n'a pas été exécuté. Donc à l'ouverture, l'une ou l'autre des Activation ne se fait pas.... Et régulièrement une des feuilles n'est pas protégée ou le UserInterface Only ne joue pas...
C'est pourquoi quand je programme certaines procédures sensibles, bien que ce ne soit pas indispensable, je glisse toujours cette ligne dans le code tout de suite après les Dim :
Ws.Protect Password:="galopin", UserInterfaceOnly:=True
Afin que s'il y a eu un incident de parcours VBA ne soit pas perturbé... J'aurai d'ailleurs très bien pu le glisser dans la Sub Test (mais je ne l'ai pas fait pour bien montrer ce qui est du ressort de l'indispensable et ce qui du ressort des précautions facultatives)
Après quand ton programme est stable tu peux retirer ou non ces lignes de précaution, ça n'a plus d'importance...