VBA viso

cs_shinji7800 Messages postés 4 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 juillet 2012 - 8 juil. 2012 à 13:48
cs_shinji7800 Messages postés 4 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 juillet 2012 - 9 juil. 2012 à 23:37
Bonjour à tous.

j'ai besoin de conseil pour le développement d'une macro sous Visio.

c'est un projet relativement simple et j'ai tout ce qu'il faut je pense pour y arriver sauf des connaissances en VBA visio.

j'ai visual studio 2010 + visio 2010 mais je n'ai jamais utilisé VS2010 -_-'.

mon projet consiste à partir d'un schéma déjà réalisé, changer la couleur des liens à partir d'infos entrées par l'utilisateur.

pour résumé :

j'ai des sites pour simplifier je vais les nommer par des lettre (A, B, C, etc etc) et entre chaque site des liens.

par exemple entre le site A et B j'ai 3 liens respectivement AR1 AR2 et AR3

et entre le site B et C j'ai 4 liens AR1, AR3, AR4 et AR5.

l'utilisateur devra spécifier 3 informations. les sites d’extrémités et le lien.

par exemple, le site A et le site B avec le lien AR1.

la macro devra par la suite mettre le lien AR1 entre A et B en rouge et tous les autre liens AR1 (entre des sites d’extrémité != de A et B) en jaune.

le souci est que le VBA visio est très différent de VBA excel, je suis donc perdu.

j'ai tenté de faire d’enregistrer une macro et voici ce que j'ai obtenu.

 'Enable diagram services
    Dim DiagramServices As Integer
    DiagramServices = ActiveDocument.DiagramServicesEnabled
    ActiveDocument.DiagramServicesEnabled = visServiceVersion140

    Dim UndoScopeID1 As Long
    UndoScopeID1 = Application.BeginUndoScope("Couleur de trait")
    Application.ActiveWindow.Page.Shapes.ItemFromID(5).CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,0,0))"
    Application.EndUndoScope UndoScopeID1, True

    Dim UndoScopeID2 As Long
    UndoScopeID2 = Application.BeginUndoScope("Couleur de trait")
    Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,255,0))"
    Application.EndUndoScope UndoScopeID2, True

    'Restore diagram services
    ActiveDocument.DiagramServicesEnabled = DiagramServices


cela fait un peu long pour changer la couleur de deux liens ...

a priori seuls deux lignes sont utiles

Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,255,0))"

Application.ActiveWindow.Page.Shapes.ItemFromID(5).CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,0,0))"




pourriez vous m'aiguiller un peu ?

d'avance merci

1 réponse

cs_shinji7800 Messages postés 4 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 juillet 2012
9 juil. 2012 à 23:37
J'ai obtenu le fonctionnement que je voulais, cependant je n'arrive toujours pas à intégrer de commentaires sur les liaisons.

est ce possible ?

si cela intéresse quelqu'un je peux poster l'intégralité de mon code sur demande.
0
Rejoignez-nous