Je ne m'étendrai pas plus sur le relationnel ressenti ici ou là par les uns et les autres... Je suis un vieux (et même un dinosaure ou un ours comme vous voudrez) par rapport à la plupart d'entre vous, et mon vocabulaire est bien suffisant pour appeler un chat : un chat. Je n'irai donc pas plus loin dans mes explications. Comprenne qui pourra...
Je ne suis intervenu sur ce sujet que parce qu'il parlait d'un sujet peu traité si j'en crois mes recherches sur Google. Comme les explications de Microsoft sur ce sujet sont clairement... ésotériques, j'espérai qu'un pédago dans l'âme y apporterait une solution. Malheureusement...
Ce que je crois : Les OleObjects ne font pas partie de la classe d'Objects natifs d'Excel implémentés dans le noyau dur au tréfond du code d'Excel.
Ainsi il n'ont pas la plupart des propriétés d'objets ordinaires. Il en va ainsi de la propriété Caption mais aussi des nombreuses autres qu'on trouve dans la fenêtre des propriétés. Aussi toute tentative de déclarer un obj as Objet dans le code se solde par un message d'erreur puisque OleObject est un type d'object particulier.
Il en va de même si l'on déclare obj as OleObject, le plantage ne se produit pas au même endroit mais le résultat est le même.
La solution est donc de ne pas typer obj et de laisser VBA arbitrer à sa guise. D'aucuns appelleraient ça mettre la poussière sous le tapis, mébon...
Clairement le problème est dans la création d'Event. Il est probable qu'on puisse remplacer la création d'une collection par un Array de Shapes, cependant je n'ai pas eu le temps de m'y essayer... Toutefois, il ne me semble pas certain que le module de classe puisse gérer l'évènement Click comme pour les TextBox peut-être qu'une approche via MouseDown et GotFocus est nécessaire. Par ailleurs je crois comprendre que des objets ainsi créés pourraient nécessiter une nouvelle instanciation à chaque activation, désactivation de la feuille ?
Bref c'est tout sauf simple et il faut effectivement une bonne dose de motivation pour persister dans cette voie... A chaque fois que c'est possible, la récupération d'objet préconstruits semble effectivement préférable... comme le suggère LouReed est préférable.
Pijaku si tu passes par là, tu aurais surement des choses intéressantes à dire !
A+
EDIT : J'ai fini par retrouver la référence qui parle de ce sujet (en piève jointe)