Bonjour,
Remarque :
1) On ne met généralement pas Public pour une procédure car toutes les procédures sont publiques par défaut, de même qu'on ne met pas Private pour une variable parce que toutes les variables sont privées par défaut...
Cela ne nuit pas au résultat, mais c'est un usage suffisamment général et bien ancré pour le suivre naturellement, ce qui démontre que l'on maîtrise un peu les rudiments de VBA sur la portée des procédures et des variables...
2) Tu ne peux pas faire ce que tu souhaites avec une fonction car tu vas créer une référence circulaire...
Tu ne peux opérer sur la valeur de la cellule elle-même dans un calcul qu'à partir d'une évènementielle qui interviendra de l'extérieur pour produire le résultat cherché.
3) ActiveCell n'est pas utilisable dans une fonction pour renvoyer la cellule qui accueille la fonction.
Pour cela il faut utiliser : Application.Caller ou Application.ThisCell (ce qui renverra la cellule qui appelle le code...
Mais évidemment, ce n'est utilisable que pour d'autres propriétés que Value, pour ne pas retomber dans un calcul à référence circulaire.
Cordialement.