Premièrement, tu fais du VBA sous Excel, pas du VB
Et il y a un forum dédié à VBA... cherche-le et poste tes messages sur ce forum à l'avenir. Tu auras plus de réponses et moins de réprimandes.
Pour ce que tu cherches à faire, tu pourrais mettre une image sur ta feuille mais invisible. Dans les événements de la feuille, il y a
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Ça te permettrait d'y mettre le code pour insérer l'image voulue et rendre visible ton image. Quelque chose du genre:
MonImage.Picture = LoadPicture("chemin et nom de l'image")
MonImage.Visible = True
J'aurais voulu faire apparaitre une image dans une info bulle en cliquant sur une cellule et que l'image disparraisse dès que je relache la clic et pas en double-cliquant sur la feuille
À ce moment-là, essaie l'événement
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Et si tu veux que l'image apparaisse seulement sur certaines cellules, il te faudra vérifier l'adresse de Target (la cellule active) avant l'affichage.
À noter que l'image apparaîtra même si tu ne te sers pas de la souris. Si tu utilises le clavier pour te déplacer l'événement sera quand même appelé. Il n'y a pas d'événement MouseDown, MouseUp ou MouseMove dans une feuille Excel.
Je viens de penser à quelque chose... Je ne sais pas si ça peut te convenir, par contre.
Il y a un contrôle qui se nomme "Feuille de calcul Microsoft Office 9.0" sous la version 2000. À voir avec ta version.
Il comporte différentes propriétés, comme l'affichage ou non des entêtes de lignes et colonnes, des barres d'outils et même de la barre de titre. Ce contrôle contient les événements MouseDown, MouseUp, MouseOver et même MouseOut.
C'est un peu tordu, mais en copiant ce contrôle par-dessus une feuille, il pourrait éventuellement se confondre avec la feuille originale et tu pourrais arriver à tes fins, je pense... Donc, sur MouseDown, tu affiches l'image, puis sur MouseUp, tu la fais disparaître.