Re : macro utilisable pour tous fichiers excel
Il vous faut créer quelque part un exemplaire d'objet défini par votre module de classe.
C'est pour ça que, même si ça n'a pas de rapport direct avec, je préfère mettre ce genre de code dans un module d'objet existant tel que ThisWorkbook, voire un UserForm … Comme ça au moins, il existe déjà !
Sinon avec un module de classe il faut en déclarer un, dans un module standard, là ça va : Dim Toto As Class1
Et trouver une occasion, là aussi, de l'initialiser: Set Toto = New Class1
Il est possible de le faire à l'initialisation du projet VBA en le mettant dans la déclaration: Dim Toto As New Class1
Class1 étant supposé être le nom de type d'objet, c'est à dire le nom de son module de classe.
N'oubliez pas l'initialisation de AppExc lors de l'initialisation de la classe, sans laquelle ça ne peut pas marcher non plus.
Edit: Je vois que vous avez mis ça, Set AppExc = Application, à un endroit où ça ne peut pas marcher: AppExc doit être initialisé avant que ses évènements puissent être pris en charge. Donc pendant c'est trop tard: l'évènement ne sera pas détecté puisque AppExc n'est pas opérationnel vu qu'il est juste décrit, et a même déjà son pointeur encore vide (Nothing) prévu, mais n'existe pas encore en mémoire vers quoi pointer !