Modification du nom d'un objet "shape"

Messages postés
2
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
6 décembre 2004
-
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
-
Bonjour à tous,

Je n'arrive pas à modifier la propriété name d'un objet shape situé sur une feuille excel.
VBA retourne le code d'erreur 70 : permission refusée.

Voici le contexte :
Dans une feuille excel, il y a plusieurs objets shape dont un de nom "shape1" et un autre de nom "shape2" mais aucun de nom "shapeXX".
Je veux renomer le "shape1" en "shapeXX".

Lors de l'attribution du nom "shapeXX" à l'objet "shape1", VB détecte que l'objet "shape2" porte le nom "shapeXX" et sort donc en erreur.

?Workbooks(sWorkbookDestination).Worksheets(sWorksheetDestination).Shapes("shape2").name
shapeXX

Pourquoi VBA récupère t-il la valeur "shapeXX" lors de l'interrogation de l'objet "shape2"?
Quelqu'un aurait-il déjà observé cet étrange phénomène?

Il existe bien une solution de contournement :
sélectioner le shape
modifier la propriété name de l'objet selection
cependant les temps de traitement sont beaucoup trop longs pour mes besoins applicatifs

Quelqu'un a-t'il ou voit-il une autre solution?

Merci d'avance...

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut balvb
Je connais pas trop VBA, mais en général, les noms des controles ne sont pas modifiables.
En VB6, quand tu veux créer un objet identique avec un nom différent, il suffit de faire :
Dim ShapeXX As New Shape1
Set ShapeXX = Shape1

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Salut,
Question pourquoi vouloir changer la propriété name de ton Shape ? dans ton prog c'est un bon moyen d'avoir des plantages
ne confonds tu pas avec la propriété Caption ou Text ?
_______________________________________

Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
Messages postés
2
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
6 décembre 2004

salut,

merci d'essayer de résoudre mon épineux pb...

en fait :
j'ai une image (le shape) représentant un élément d'un jeu.
je souhaite sauvegarder les caractéristiques de cet élément dans le nom de l'image afin de minimiser les aller/retour entre clients et serveur (le serveur met à jour les noms et le client est capable d'effectuer toutes ses opérations de façon autonome).

le client a la possibilité de mettre à jour les caractéristiques et donc de modifier le nom de l'image.

je n'ai pas trouvé d'autres caractéristiques que le "name" pour contenir mes infos (pas de caption, pas de text pour un objet shape)

a+
balvb
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Tu as une propriété qui est trés utile pour cela c'est le .Tag qui peu recevoir toute sorte d'information
____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Oups dsl
Je ne pensais plus que tu était sous VBA donc pas de .Tag
essayes le .AlternativeText mais sans conviction......
____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé