Modification du nom d'un objet "shape"

balvb Messages postés 2 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 6 décembre 2004 - 3 déc. 2004 à 14:55
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 6 déc. 2004 à 22:24
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 déc. 2004 à 16:14
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)
0
Rejoignez-nous