Salut,
Première chose, quand tu es dans ton code, clique sur le bouton droit de ta souris, vas sur "basculer", vérifies que tu es bien sur "Arrêt sur les erreurs non gérées".
Si c'est le cas mais qu'il ne fait quand même pas le goto, vire le "Exit Sub" (avant le "Annuler:") et mets plutot un "Goto Fin", puis rajoute un "Fin:" juste avant le "End Sub".
Si il bascule bien sur l'erreur, vérifie que c'est bien un cancel, pour cela rajoute le test suivant :
"If Err.Number = mscomdlg.cdlCancel Then"
<actions à effectuer si c'est la commande annuler>
else
<actions à effectuer si c'est une autre erreur>
endif"
De cette manière, tu différencieras ton annulation d'une erreur qui aurait pu survenir durant l'exécution.
Si après tout ça ne marche pas, essaye de virer le "err.clear" du tout début, ça peut peut-être le gêné, mais ça m'étonnerait.
Bonne chance
Surfurax