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 ?
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é ... )
Bonne journée à toi,
m
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.
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
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
bonsoir à tous
quand on insert une image et que l'on veut connaitre son nom on peut utiliser le .count de la collection shapes juste après l'insertion
with activesheet:msgbox .shapes(.shapes.count).name :end with