Ajouter une forme à un groupe de formes
Je développe en VBA un programme de dessin assez particulier dans lequel on est amené à déplacer simultanément, avec la souris, plusieurs formes représentant des objets.
Je n'ai aucun problème pour grouper les formes (avec la méthode "Group"), mais je voudrais savoir s'il est possible d'ajouter une ou plusieurs formes dans un groupe sans défaire ce groupe (par la méthode "Ungroup") et sans créer un nouveau groupe contenant le premier et les nouvelles formes.
Défaire le groupe m'obligerait à mémoriser les formes qu'il contient pour les réintégrer dans le nouveau et cela me semble compliqué.
Grouper les nouvelles formes avec le premier groupe créerait des "sous-groupes" qu'il me semble impossible à atteindre pour connaître et modifier leur propriétés (par la méthode "GroupItems").
Quelqu'un aurait-il une solution à me proposer ou, si ce que je demande est impossible, une méthode rapide pour contourner le problème.
D'avance, merci
Ajouter une forme à un groupe de formes
J'aimerais revenir sur le problème que j'ai posé le 31 aout dernier.
Encore merci à tous ceux qui y ont répondu. Leurs idées m'ont permis d'avancer dans mon travail.
Cependant, j'ai fermé trop vite la discussion car dans la première réponse de Pierre Fauconnier et dans ses échanges avec Ben_L et Patricktoulon, il était question d'interface et de sélection, et je n'ai pas compris ce qu'il voulaient dire et pourquoi cela posait un problème dans la première solution (de Pierre Fauconnier).
Aujourd'hui, en retravaillant le sujet je suis tombé sur une solution plus simple que toutes celles qui ont été proposées. Mais en repensant à ce que j'ai écrit ci-dessus, j'ai bien peur que vous allez me la rejeter car je joue sur la sélection des formes. Pouvez-vous m'expliquer en quoi cela pose problème ?
Voici ma solution :
Code:
1 2 3 4 5 6
| Function AddShapeInGroup(Group As Shape, NewShape As Shape)
Dim GrName As String
Group.Ungroup.Select
NewShape.Select False
With Selection.ShapeRange.Group: .Name = GrName: End With
End Function |
Vous remarquerez que cette solution a en plus l'avantage d'attribuer au nouveau groupe le nom du groupe initial.
Si ce n'est pas abuser, j'aimerais aussi que l'on m'explique la dernière instruction de la solution de Ben_L :
Code:
NewShape.Parent.Shapes.Range(aStr).Group
En fait, c'est le propriété (ou méthode ?) "Parent" que je ne comprend pas. Pouvez-vous m'éclairer là dessus ?
D'avance, merci