Bonjour à tous.

En préambule, une petite présentation, qui servira accessoirement de prévention : je ne suis absolument pas informaticien. Les quelques (rares) connaissances du visual basic dont je dispose sont exclusivement empiriques, donc ma façon de programmer doit ressembler à peu près au pire cauchemar de tout informaticien qui se respecte.

Après avoir parcouru en long en large et en travers ce forum, je me résoud à poster une nouvelle discussion. La réponse à ma question est certainement déjà sur le forum, mais bon, je n'ai rien trouvé d'assez clair pour pouvoir l'utiliser.

Mon problème est donc le suivant.

sur une feuille de calcul, je dois gérer des groupes de 4 petites images, visibles ou non selon les circonstances, dont le nom se trouve dans une mini base de donnée sur une autre feuille. jusque là, je m'en sors à peu près.
en plus de ces images, je dois gérer une étiquette, qui apparait lorsque la souris passe au dessus de l'une des images. Pour ça aussi, je pense pouvoir m'en sortir.
Le problème arrive lorsque je veux modifier automatiquement (par l'intermédiaire d'une macro) le texte de ladite étiquette. je tente désespérément d'utiliser le .caption, et excel me renvoie une erreur propriété ou méthode non gérée par cet objet. Et là, je bloque. Quelqu'un peut m'aider ?

Pour tenter d'être plus clair voici ce que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub test()
 
Dim Nom_image_originale, _
      Nom_BDD As String
 
    Nom_BDD = "TE-MOB-001"
 
    ActiveSheet.Shapes("Im_Et_NS").Select
    Selection.Copy
    Range("CH36").Select
'dans la version finale, cet emplacement sera défini par la position de la
'souris au moment de la demande de création
    ActiveSheet.Paste
    Nom_image_originale = Selection.Name
    Selection.Name = Nom_BDD + Right(Nom_image_originale, 3)
 
 'même code pour les trois autres images
 
    ActiveSheet.Shapes("Tx").Select
    Selection.Copy
    Range("CH36").Select
    ActiveSheet.Paste
    Selection.Caption = "Texte de l'étiquette" 'cette ligne provoque une erreur
    Selection.Name = "Nom_BDD" + "_Tx"
 
End Sub
 
'l'étiquette d'origine a été créée comme ceci
'    ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Link:=False, _
       DisplayAsIcon:=False, Left:=1123.5, Top:=395.25, Width:=87, Height:= _
       24).Select
Voilà, j'espère ne pas avoir été trop brouillon dans mes explications, et que quelqu'un saura me donner des idées, voire me donner un cours de VBA excel (ca me semble de plus en plus nécessaire).