Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Obtenir le nom vba d'une forme rectangle (Shape)

8 réponses
Avatar
HD
Bonjour,

Je réalise des macros qui manipulent le texte et les propriétés de certains
éléments dont des rectangles. Mais je ne vois pas comment l'on peut savoir
rapidement le nom d'une de ces formes ?

Par exemple tel rectangle aura pour nom Shapes("Rectangle 12")... mais
comment le savoir si ce n'est en enregistrant une macro et en le
sélectionnant ?

Merci d'avance pour votre aide
--
@+
HD

8 réponses

Avatar
Tisane
Bonjour "HD",

Je réalise des macros qui manipulent le texte et les propriétés de
certains
éléments dont des rectangles. Mais je ne vois pas comment l'on peut savoir
rapidement le nom d'une de ces formes ?
Par exemple tel rectangle aura pour nom Shapes("Rectangle 12")... mais
comment le savoir si ce n'est en enregistrant une macro et en le
sélectionnant ?


Sans macro, tu peux repérer le nom des objets ainsi :
- clic droit dans une barre d'outils | Personnaliser
- dans la catégorie Dessin, fais glisser l'outil "Sélectionner tous les
objets" dans la barre d'outils Dessin par exemple.
- sélectionne ton objet et clique sur cet outil
Le nom des objets sera affiché.

--
Tisane

Avatar
HD
- clic droit dans une barre d'outils | Personnaliser
- dans la catégorie Dessin, fais glisser l'outil
"Sélectionner tous les objets" dans la barre
d'outils Dessin par exemple.


Avec mon Word97 j'ai "Sélection des Objets".

- sélectionne ton objet et clique sur cet outil
Le nom des objets sera affiché.
Je n'ai rien qui s'affiche... Le nom doit s'afficher où d'ailleurs ?

Je n'ai rien n'y dans les barres Word97 (statusbar, et autres), ni en info
bulle, etc...

--
@+
HD

Avatar
Blaise Cacramp
sélectionner TOUS (ou plusieurs) les objets que madame à écrit
"HD" a écrit dans le message de
news:eutmh9$1n17$
- clic droit dans une barre d'outils | Personnaliser
- dans la catégorie Dessin, fais glisser l'outil
"Sélectionner tous les objets" dans la barre
d'outils Dessin par exemple.


Avec mon Word97 j'ai "Sélection des Objets".

- sélectionne ton objet et clique sur cet outil
Le nom des objets sera affiché.
Je n'ai rien qui s'affiche... Le nom doit s'afficher où d'ailleurs ?

Je n'ai rien n'y dans les barres Word97 (statusbar, et autres), ni en info
bulle, etc...

--
@+
HD





Avatar
HD
sélectionner TOUS (ou plusieurs) les
objets que madame à écrit


ça je l'ai bien compris... Mais le problème est qu'il n'y a pas cette
commande dans Word97 !

Avec mon Word97 j'ai "Sélection des Objets".



--
@+
HD

Avatar
Circé
Bonjour,


HD a émis l'idée suivante :
sélectionner TOUS (ou plusieurs) les
objets que madame à écrit


ça je l'ai bien compris... Mais le problème est qu'il n'y a pas cette
commande dans Word97 !


D'une part, effectivement, de mémoire, ça n'existe pas dans Word 97.
D'autre part, tu parles de shape... Et la sélection multiple d'objets
ne concerne que les inlineshape !!
C'est donc doublement faux !

En VBA tu peux les appeler par leur numéro... Mais il me semble que ce
numéro n'est pas un numéro d'ordre dans le document, mais dans
l'insertion... :(

ActiveDocument.Shapes(1).Select

Circé
http://faqword.free.fr

Avec mon Word97 j'ai "Sélection des Objets".




Avatar
Tisane
Bonjour,

D'une part, effectivement, de mémoire, ça n'existe pas dans Word 97.


En effet, l'outil "Sélectionner plusieurs objets" n'est apparu qu'avec la
v2000.
Quoiqu'il en soit, dans la v97, les formes ne peuvent pas être alignées sur
le texte (inlineshape).
L'option "Dissocier du texte" n'est disponible que pour les images.

D'autre part, tu parles de shape... Et la sélection multiple d'objets ne
concerne que les inlineshape !!


Curieux... J'aurais parié l'inverse... à savoir que l'outil "Sélectionner
plusieurs objets" concerne justement les "shapes", formes/dessins/images non
alignés sur le texte, autrement dit "flottants".

Là, c'est vrai, "C'est donc doublement faux !" ;-)

--
Tisane



HD a émis l'idée suivante :
sélectionner TOUS (ou plusieurs) les
objets que madame à écrit


ça je l'ai bien compris... Mais le problème est qu'il n'y a pas cette
commande dans Word97 !


D'une part, effectivement, de mémoire, ça n'existe pas dans Word 97.
D'autre part, tu parles de shape... Et la sélection multiple d'objets ne
concerne que les inlineshape !!
C'est donc doublement faux !

En VBA tu peux les appeler par leur numéro... Mais il me semble que ce
numéro n'est pas un numéro d'ordre dans le document, mais dans
l'insertion... :(

ActiveDocument.Shapes(1).Select

Circé
http://faqword.free.fr




Avatar
Tisane

sélectionner TOUS (ou plusieurs) les
objets
ça je l'ai bien compris... Mais le problème est qu'il n'y a pas cette

commande dans Word97 !


La prochaine fois, annonce ta version dès ton premier message, on gagnera du
temps ;-)

Pourquoi ne pas imposer des noms à tes objets ?

Sub RenommeForme()
strNouveauNom = InputBox("Nouveau nom pour cet objet")
With ActiveWindow.Selection.ShapeRange
.Name = strNouveauNom
End With
End Sub

A faire une fois et au moins tu ne t'embêtes pas avec les numéros d'index,
sachant toutefois que Word conserve aussi le nom d'origine des formes.
Par exemple :
Shapes("monrectangle").Select
revient au même que Shapes(x).Select
ou Shapes("Rectangle x").Select
mais en plus sympa...

--
Tisane


Avatar
HD
La prochaine fois, annonce ta version dès
ton premier message, on gagnera du
temps ;-)
C'est vrai... Mais je ne pensais pas qu'il n'y avait pas de solution telle

celle que l'on trouve dans un Word plus récent... :-)

Pourquoi ne pas imposer des noms à tes objets ?
Merci pour la solution de rechange. Je vais la tester. Elle me permettra

d'avoir au moins une solution pour les nouveaux fichiers... Pour les anciens
le problème est que nous en avons peut être pas loin de 100 000... donc pour
les anciens c'est rapé... :-(

--
@+
HD