c'est la ligne suivante qui plante
Percu = CCur(Part_Locataire) + CCur(Part_Caf) & " €"
parce que tu veux transformer une chaine vide en valeur numérique au format Currency. Tu dois déjà mettre en place une gestion d'erreurs bétonnée chaque fois que tu dois faire des conversions de ce genre (et il y en a pas mal dans ton programme), sinon, à chaque erreur de frappe - introduction d'une lettre dans un textbox qui attend des nombres, tu auras un arrêt sur erreur.