Re,
Le problème que je vois ce sont les versions d'Excel par exemple où tel code ne fonctionnera pas ou si, par hasard, tu as un petit malin qui se prend l'idée de recopier ton fichier pour le donner à quelqu'un d'autre en oubliant une macro. Résultats, à l'ouverture le gars perd ses barres de menu et ne les retrouvera pas car tu dois savoir que cette opération est liée à Excel et pas à ton fichier. Donc sur ce forum on évite de donner ce genre de code.
Si je comprends bien ton code, ton classeur est utilisé pour de la consutation uniquement ou aussi pour de l'encodage ?
Ce que tu peux faire c'est lorsque tu feras 'enregistrer sous' ton fichier, aller dans les options et par exemple utiliser un mot de passe et/ou cocher 'lecture recommandée'. Là si l'utilisateur modifie ou veut enregistrer ton fichier ce sera en tant que nouveau et pas sur le tien. Fais quelques essais.
Autre solution si tu es en réseau, c'est dédier un répertoire à ton application et lui donner un droit de lecture uniquement. L'utilisateur pourra dans ce cas uniquement lire ton fichier et pas le modifier. En appliquant les macro BeforeClose que tu mises dans ton post, le fichier restera instact à la fermeture.