Shape VB Visio test appartenance a un groupe

Signaler
Messages postés
9
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2009
-
Messages postés
8
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
29 juillet 2010
-
Bonjour,

Je manipule des elements shapes issus dŽune page Visio (VB6). Je voudrais toutes les degroupees enfin qu elles soient toutes visibles pour la suite de mon traitement.

Comment peux tŽon tester quŽune shape contient d autres shapes ? Du style estGroupe, est container...

Je souhaiterais pouvoir la detecter pour ensuite eclater ce groupe de shapes.

J ai essaye de jouer sur le type mais c est le meme type donc pas moyen de les differencier

If vsoShapes.Item(intCounter).Type = msoGroup 




Merci pour votre aide

Wil

2 réponses

Messages postés
9
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2009

Re,

Entre temps jŽai trouvé une méthode qui pourrait répondre a mon besoin

'Donc pour moi l idee s est davoir selectionner des elements dans la fenetre (par le code) et ensuite vouloir casser tous les groupes

DrawingControl1.Window.Selection.RemoveFromGroup


Erreur : la propriété est désactivée
-2032465766 (86db089a)

Mon code pour selectionner les shapes dŽune feuille et essayer de degrouper

    Dim intCounter As Integer
    Dim intShapeCount As Integer
    Dim vsoShapes As Visio.Shapes
    Dim vsoGroup As Visio.Shape
 Dim vsoSelection As Visio.Selection

    Set vsoShapes = DrawingControl1.Document.Pages.Item(1).Shapes

    'PAS TESTER #SOLUTION 3 UTILISATION DE RANGE UNGROUP SELECT
    'ActiveSheet.Shapes("Group 3").ShapeRange.Ungroup.Select
   
set vsoSelection = DrawingControl1.Window
    Debug.Print "Shape Name List For..."
'    Debug.Print "Document: "; ActiveDocument.Name

    intShapeCount = vsoShapes.Count

    If intShapeCount > 0 Then
        For intCounter = 2 To intShapeCount
          Debug.Print "Type: "; vsoShapes.Item(intCounter).Type; "TXT: "; vsoShapes.Item(intCounter).Text
          
  'Je recupere les shapes dans une selection 
          vsoSelection.Select vsoShapes.Item(intCounter), visSelect
  
  '#SOLUTION 1 : Ungroup sur chaque shape
  vsoShapes.Item(intCounter).Ungroup
            
        Next intCounter
'#SOLUTION 2 : utilisation de RemovefromGroup
'Tentative dŽutilisation du removefromgroup qui ne marche pas	
    vsoSelection.RemoveFromGroup
 
    Else
        Debug.Print " No Shapes On Page"
    End If

End Sub


JŽespère que quelquŽun sera mŽexpliquer le comportement de Selection dans VB je pense que cŽest la meilleure solution pour moi

Encore merci
Messages postés
8
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
29 juillet 2010

salut,
j'espère que t'as réussi à regler ton problème
pour moi je veux affficher la liste des forme utilisées avec leurs propriètés genre (le type, valeur,...etc). ça fait un mois mnt que j'arrive pas à avancer peux tu m'aider STp je serais très reconnaissant
Merci.
sachant que je suis encore débutant en VBA