Récupérer le nom d'une image

rounil09

XLDnaute Occasionnel
Bonjour la liste,
Sur EXCEL 2007 lorsqu'on insère une photo (Menu insertion puis image) d'un fichier jpg, EXCEL nomme cette image. Ce nom apparaît dans la barre des noms en cliquant sur la photo. (exemple image 253)
Quelqu'un peut-il m'ndiquer comment récupérer ce nom (image 253) dans une cellule ?
 

mth

XLDnaute Barbatruc
Re : Récupérer le nom d'une image

Bonjour Rounil09,

Voici un petit essai de code :
Code:
Option Explicit
Dim s As Shape, x As String
Sub img()
 
   For Each s In ActiveSheet.Shapes
    x = s.TopLeftCell.Address
    Range(x).Offset(0, 1) = s.Name
   Next s
End Sub

Je me suis inspirée du site de JBoisgontier (dossier Images et shapes)

Bien à toi,

mth

Edit: :) Bonjour Pierrot :)
(j'ai peut-être un peu compliqué ... :eek:)
Bonne journée à toi,
m
 

Pièces jointes

  • NomImge.zip
    21.3 KB · Affichages: 196
Dernière édition:

rounil09

XLDnaute Occasionnel
Re : Récupérer le nom d'une image

Merci mth et pierrot 93, avec du retard car j'ai du m'absenter...

Vos codes fonctionnent bien, mais en fait j'ai une photo et plusieurs objets dans ma feuille et je voudrais que la macro ne s'applique qu'à la photo (Nommée : image xxx) et pas aux autres objets (Nommés : pictures xxx, groupes xxx, ou boutons xxx, ...).

Je bataille en vain pour essayer d'adapter dans ce sens la macro de mth.
 

mth

XLDnaute Barbatruc
Re : Récupérer le nom d'une image

re :)

Peut-être ainsi ? (même source site de JB):

Code:
Sub img()
   For Each s In ActiveSheet.Shapes
    x = s.TopLeftCell.Address
    If s.Type = 13 Then Range(x).Offset(0, 1) = s.Name
   Next s
End Sub

Bonne soirée,

mth
 

rounil09

XLDnaute Occasionnel
Re : Récupérer le nom d'une image

Inutile de vous triturer les méminges.

J'ai trouvé en cherchant dans le forum (2009) le code suivant qui correspond à mon besoin.


Dim Sh As Shape

For Each Sh In Me.Shapes

If Sh.TopLeftCell.Address = "$AW$1" Then
Sh.Name = "Nouveau Nom"
End If

Next
 

escouger

XLDnaute Occasionnel
Bonjour j'ai la même question, mais je souhaiterais retrouver le nom de mon image directement lorsque cette image déclenche la macro.
Exemple: J'ai 3 images qui sont associées toutes les 3 à une même macro.
Je voudrais dès le début de cette macro identifier le nom de l'image qui a déclenché la macro.
Si je cliques sur image1 je retrouve "image1" dans une zone de type string
Si je cliques sur image2 je retrouve "image2" .dans la même zone de type string que ci-dessus...etc
Merci d'avance de votre aide
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @escouger , ce vieux Fil, le Forum

Un moyen détourné assez simple à mettre en place.... On transmet la string directement à la macro de traitement sans passer par une cellule ou autre "zone de type string".

VB:
Option Explicit

Sub Rectangle1_Click()
QuiRun "Rectangle1"
End Sub

Sub Rectangle2_Click()
QuiRun "Rectangle2"
End Sub

Sub Rectangle3_Click()
QuiRun "Rectangle3"
End Sub

Sub QuiRun(ByVal Qui As String)
    MsgBox "Hello from " & Qui
End Sub

Bonne soirée
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Patrick, re le Fil

Ah oui et aussi (sous office 2013), je vois ceci en haut, à gauche de la barre de formules)
1592160485497.png


Et avec ton code on a bien le MsgBox en confirmation ;)

Bonne soirée
@+Thierry
 

Discussions similaires

Réponses
10
Affichages
222
Compte Supprimé 979
C