Sur la ligne 13 End If, j'ai des doutes. 
Type Mismatch (erreur 13) survient, notamment, lorsque tu utilises des variables qui n'ont pas les types adéquats lors d'un traitement.

Dans la mesure où il n'y a à mon avis que ta division qui peut poser un problème de ce type, j'ai identifié que x et/ou y ne sont pas numériques.
Comment as-tu vérifier que tes valeurs sont correctes? Comportent-elles des décimales? Si oui, quel séparateur? As-tu vérifié leur type dans Excel ou dans VBA? Dans la mesure où c'est dans VBA que tu as le problème, il me semble logique que ce soit dans VBA que tu vérifies que tes variables sont bien numériques.
Je rejoins Franck (nous nous rejoignons donc...
) sur le typage des variables, qui passe par leur déclaration (un option explicit en début de module et une déclaration explicite dans la procédure). Cela permet de bloquer si tu essaies de passer autre chose à une variable qu'une valeur du même type qu'elle. Ici, pour l'exemple, je déclare x et y en double, mais il y a d'autres types numériques.
dim x as double, y as double
Méfie-toi de VBA qui est très permissif et assigne le type qui correspond à la valeur passée lors de la première affectation d'une valeur à une variable non déclarée.
Partager