Bonjour,
J'aurais pu le mettre dans workbook_open().
Mais quand on teste, si on quitte un pas à pas sans aller jusqu'au bout on perd les variables. Et 1 fois/2 on oublie de les réinitialiser, c'est ch....
Et si jamais le programme plante (d'accord, il ne devrait pas) on les perd aussi. C'est ch.... pour l'utilisateur qui doit : soit se rappeler la proc à lancer manuellement, soit fermer et rouvrir le fichier.
Donc quand je suis dans une proc où j'ai besoin de dictImg, je teste au début si cette init est faite ou perdue et je la fais si besoin :
If Not initOk Then initListImg
Dans initListImg il y a initOk = True (variable globale qui est conservée) pour marquer que c'est fait.
Comme à l'ouverture initOk = False c'est fait au 1er Worksheet_SelectionChange(), regarde mieux sa 1ère ligne. Aux suivants tu ne le vois plus même en pas à pas puisque c'est déjà fait ;-)
Donc si plus tard tu as besoin de réinialiser la liste suite à évolutions tu peux te contenter de mettre initOk = False pour forcer la réinitialisation au moment du besoin. Même si tu fais 18 modif d'images tu n'auras qu'une seule réinit et pas de ralentissements possibles au moment des manips.
eric
Partager