Ton souci vient simplement de ce que tu n'as pas demandé à ton userform de se fermer ! Change ta procédure CommandButton_Click par la suivante et tu verras.
Private Sub CommandButton1_Click()
Sheets("Menu principal").Select
Unload Me
End Sub
D'autre part, AJOUTE LA MENTION "OPTION EXPLICIT" en début de tous tes modules, ça t'évitera de déclarer une variable à la fin d'une procédure alors que cette variable n'est même pas utilisée dans ta procédure, tout en omettant de la déclarer dans une autre procédure où, pourtant, tu l'utilises.
Rappel : une variable se déclare AU DEBUT d'une procédure, avant toute autre ligne. Une variable globale se déclare au début d'un module.
Placer une déclaration de variable au milieu de lignes de code est une hérésie. On a déjà bien du mal à relire parfois ce qu'on a écrit quelque temps auparavant, sans devoir se placer à soi-même des chausse-trappes...
Et pendant que vous y êtes, rien ne vous interdit de donner des noms explicites à vos variables : Boucle, Ligne, Colonne... ça ne coûte rien et c'est tellement plus facile à lire !