Bonjour,
Aussi suis-je concerné par : Mais méfie-toi qu'activeworkbook est le classeur actif, pas celui qui contient la macro.?
Dans Classeur1!A1 tu mets ta fonction, ta cellule contient "Classeur1.xls"
Tu actives un Classeur2, ta cellule Classeur1!A1 contiendra maintenant "Classeur2.xls" puisque tu fais référence au classeur actif.
Peut-être pas gênant selon l'usage que tu fais de ta cellule, mais faux si c'est le nom du classeur de cette cellule que tu voulais.
Si tu veux que ça reste Classeur1.xls il faut mettre ThisWorkbook.name (nom du classeur que contient la macro).
Ou bien si tu veux une fonction unique (code présent une seule fois) utilisable dans tous les classeurs qui donne le nom du classeur où la fonction est écrite tu peux faire :
Function nomClasseur()
nomClasseur = Application.Caller.Parent.Parent.Name
End Function
eric