Comparer 2 documents en VBA dans Visio

Signaler
Messages postés
11
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
9 juin 2009
-
Messages postés
11
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
9 juin 2009
-
Bonjour à tous,

Encore Visio toujours Visio mais aussi du VBA :)

Je vous explique le probleme :

J'ai 2 documents Visio document1 et document2 (tres creatif comme vous le voyez)
Je souhaite verifier les noms des shapes de chaque Document.
En clair je selectionne le document 1, je selectionne le nom du 1er shape et je le compare avec tous les shapes du document 2 puis je recommence avec le shape numero 2 dans le document 1 que je compare ... etc

Je vous met le bout de code que j'ai fait jusque là.
Le souci c'est que apparament il reste sur le document qui a e selectionne ou simplement sur le document 1.
Si je clique sur le document 2 il travaillera uniquement avec le document 2  :s

Private Sub CommandButton1_Click()


Dim pagThisPage As Visio.Page
Dim myShp1 As Visio.Shapes
Dim myShp2 As Visio.Shapes
Dim myDoc1 As Visio.Window
Dim myDoc2 As Visio.Window
Dim vsoShapes1 As Visio.Shape
Dim vsoShapes2 As Visio.Shape
Dim nameShp1 As String
Dim nameShp2 As String

Set myShp1 = Visio.ActivePage.Shapes
Set myShp2 = Visio.ActivePage.Shapes
Set myDoc1 = Visio.Windows.ItemEx("Document1.vsd")
Set myDoc2 = Visio.Windows.ItemEx("Document2.vsd")


    myDoc1.Activate   ' Ici j'active le document .. normalement ?

    For Each vsoShapes1 In myShp1
    ShapeIdTxt = vsoShapes1.UniqueID(Index)
    nameShp1 = vsoShapes1.Cells("Prop.Name").Formula   ' je recupere la propriete Nom
     
     myDoc2.Activate    ' Ici j'active le document2 .. normalement ?            

        For Each vsoShapes2 In myShp2
        nameShp2 = vsoShapes2.Cells("Prop.Name").Formula
           If refShp = refShp2 Then
               vsoShapes2.Cells("Prop.Name").Formula = nameShp1
          Else
          End If
        Next
    
     myDoc1.Activate  ' je reactive le document 1 pour continuer ma boucle

    Next

End Sub

J'imagine que c'est un truc bête mais vraiement je seche
Je suppose qu'il y a la possiblite de faire un truc du style :

IF myDoc1.nameShp1=myDoc2.nameShp2 THEN
vsoShapes2.Cells("Prop.Name").Formula = nameShp1 
END IF

Enfin vous voyez le genre ...

Merci d'avance

1 réponse

Messages postés
11
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
9 juin 2009

heu j'ai pas trouve la fonction edit :(

donc il faut remplcer :

 If refShp = refShp2 Then

par If  nameShp1 = nameShp2 Then

(le refShp c'est un vieux test :x )