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

Vba 2007 retrouver le nom d'un objet sélectionné dans un groupe

5 réponses
Avatar
Tabuir
Bonjour,
comme le dit le titre, sous VBA de Word 2007, je voudrais connaitre le nom
d'un objet sélectionné (textbox dans ce cas) qui fait partie d'objets
groupés.

Sous Word 2000 ou 2003 :
Selection.ShapeRange.Name renvoie effectivement le nom de la TextBox
activée
Sous Word 2007 :
Selection.ShapeRange.Name renvoie le nom du groupe !! même si la textbox
est active.
Là, je vois pas pourquoi 2007 ignore la sélection.

J'ai parcouru l'aide, mais je n'ai pas trouvé de nouvelle méthode adaptée,
aussi je fais appel à vos lumières.
Merci pour votre aide.
Tabuir.

5 réponses

Avatar
Geo
Bonjour à Tabuir qui nous a écrit :

Bonjour,
comme le dit le titre, sous VBA de Word 2007, je voudrais connaitre le nom d'un objet
sélectionné (textbox dans ce cas) qui fait partie d'objets groupés.

Sous Word 2000 ou 2003 :
Selection.ShapeRange.Name renvoie effectivement le nom de la TextBox activée
Sous Word 2007 :
Selection.ShapeRange.Name renvoie le nom du groupe !! même si la textbox est
active.
Là, je vois pas pourquoi 2007 ignore la sélection.

J'ai parcouru l'aide, mais je n'ai pas trouvé de nouvelle méthode adaptée, aussi je
fais appel à vos lumières.
Merci pour votre aide.
Tabuir.



C'est dans un document , c'est à dire pas dans une UserForm ?
Je ne vous serai pas d'une grande aide.
Les développeurs considèrent peut-être logique que ce soit le groupe
qui soit considéré comme sélectionné, pour un contrôle on utiliserait
plutôt le focus. Et ils ont corrigé cette "anomalie" ?

--
A+
Avatar
Tabuir
Déjà merci Géo pour ta réponse.
C'est dans un document , c'est à dire pas dans une UserForm ?




oui ce sont des objets graphique placés dans un document

Les développeurs considèrent peut-être logique que ce soit le groupe qui
soit considéré comme sélectionné, pour un contrôle on tiliserait plutôt
le focus. Et ils ont corrigé cette "anomalie" ?




Il me semble qu'au contraire la sélection à été améliorée, car maintenant
sous 2007, on peut sélectionner un objet graphique dans un groupe et
modifier ses propriétés (couler épaisseur de traits ...) par un clic droit
sans dégouper ce qui est impossible en 2000 ou 2003.
La nouveauté c'est qu'il y a maintenant simultanément une double sélection,
les "poignées" du groupe ET celles de l'élément graphique activé (en
pointillé bleu).
Il doit forcément y avoir une différence entre ces deux sélections mais
"Selection.ShapeRange" renvoie le groupe pas l'objet.
Je retrouve bien la liste des objets qui constituent le groupe mais aucune
propriété me renseigne sur celui qui est actif.
Je continue à chercher.

Cordialement
Tabuir
Avatar
Geo
Bonjour

Une piste peut-être pour contourner, mais je n'ai pas de document de
test sous la main.

Il existe un signet prédéfini qui correspond à la sélection.
Peut-être y a t-il moyen soit de vérifier que le range du signet
correspond au Range d'un des éléments du groupe, ou qu'il y est inclus
ou simplement qu'ils ont une partie commune.
Par exemple en utilisant les propriétés
ActiveDocument.Bookmarks("Sel").Start
ActiveDocument.Bookmarks("Sel").End

--
A+
Avatar
Tabuir
re Bonjour,
Problème résolu !
à force de parcourir l'aide de VBA, je viens de trouver une solution.
Je teste si la selection est bien un groupe, puis si c'est le cas,
pour un groupe il faut utiliser :
Selection.ChildShapeRange.Name (ça n'existe pas en 2000 ou 2003)
là, 2007 renvoie bien le nom de l'objet actif.

En tout cas, merci pour tes infos, ça m'a redonné du courage pour fouiller
plus profondément l'aide.
Cordialement
Tabuir
Avatar
Geo
Bonjour à Tabuir qui nous a écrit :

re Bonjour,
Problème résolu !
à force de parcourir l'aide de VBA, je viens de trouver une solution.
Je teste si la selection est bien un groupe, puis si c'est le cas,
pour un groupe il faut utiliser :
Selection.ChildShapeRange.Name (ça n'existe pas en 2000 ou 2003)
là, 2007 renvoie bien le nom de l'objet actif.

En tout cas, merci pour tes infos, ça m'a redonné du courage pour fouiller plus
profondément l'aide.
Cordialement
Tabuir



Bravo et merci pour l'information.
Cette propriété m'a échappé.

--
A+