Shape VB Visio test appartenance a un groupe

wil3164 Messages postés 9 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 24 juillet 2009 - 23 juil. 2009 à 17:17
cs_unique07 Messages postés 8 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 29 juillet 2010 - 26 juil. 2010 à 11:21
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

wil3164 Messages postés 9 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 24 juillet 2009
24 juil. 2009 à 17:11
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
0
cs_unique07 Messages postés 8 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 29 juillet 2010
26 juil. 2010 à 11:21
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
0
Rejoignez-nous