Vba 2007 retrouver le nom d'un objet sélectionné dans un groupe
5 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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+
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" ?
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+
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
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.
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
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+
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
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+
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
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
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
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+
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é.
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é.