Pour ma part, j'utilise une gestion d'erreur en surcouche de celle de vb.
Mais plus simplement, tu peux definire une variable global bProcess en tant que boolean dans ton module.
Quand tu as une erreur, tu lui assignes false au moment de ton message d'erreur et tu ne lances ta fonction C que si ta variable bProcess est a vrai.
idée du code de lancement de ta macro :
if (bprocess) then
fonction 3
else
gestion de ton erreur
end if