Bonjour
Une fonction ne peut opérer aucun changement de contenus de cellules, seulement des changement de valeurs des seules cellules qui l'utilisent dans leurs formules.
Il faut une Sub pour cela, et déterminer quand elle doit être exécutée, obligatoirement en dehors d'une phase d'évaluation de formules. À première vue ce serait le travail d'une Sub Worksheet_Change dans le module de la feuille. Toutefois une fonction perso pourrait laisser une consigne dans un tableau VBA global qui serait repris ensuite par une Worksheet_Calculate.