cs_ManuD
Messages postés8Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention 7 mars 2006
-
6 mars 2006 à 11:42
cs_cissou06
Messages postés124Date d'inscriptionmercredi 2 juillet 2003StatutMembreDernière intervention16 mai 2007
-
6 mars 2006 à 17:31
Bonjour à tous,
Je souhaite générer automatiquement un document Visio à partir de VB.
Il est très facile d'ajouter une combobox ou un label grace à la commande :
Set oNewObject = oPageActive.insertobject("forms.combobox.1", visInsertAsControl")
Set oNewObject = oPageActive.insertobject("forms.label.1", visInsertAsControl")
En revanche je n'arrive pas à créer des objets natifs de Visio dans ma page : Lien dynamique ou événement divisé.
Impossible de trouver la commande associée...
cs_cissou06
Messages postés124Date d'inscriptionmercredi 2 juillet 2003StatutMembreDernière intervention16 mai 20071 6 mars 2006 à 16:11
Terrible erreur de ma part! Je l'ai tellement utilisée partout dans mon code que je me suis convaicue qu'il s'agissait d'une fonction VBA, en fait c'est moi qui l'ai codée, désolée! La vraie fonction VBA à utiliser c'est:
Dim stnHideObj As Visio.Document
Dim mastObj As Visio.Master
Dim shpObj as Visio.Shape
Set stencilObj = Visio.Application.Documents.Item(stencilName)
Set mastObj = stencilObj.Masters.Item(shapeName)
Set shapeObj = oPageActive.Drop(mastObj, XBegin, YBegin)
où XBegin et YBegin sont les coordonnées sur la page où tu veux positionner ta shape.
Encore désolée pour la mauvaise piste! Celle là c'est la bonne!
cs_cissou06
Messages postés124Date d'inscriptionmercredi 2 juillet 2003StatutMembreDernière intervention16 mai 20071 6 mars 2006 à 15:21
Si tu connais le nom de ta shape (shapeName dans l'exemple ci-dessous) et le nom du gabarit dont elle provient (stencilName) tu peux essayer un truc comme ça:
Dim stnHideObj As Visio.Document
Dim mastsObj As Visio.Masters
Dim shpObj as Visio.Shape
Set stencilObj = Visio.Application.Documents.Item(stencilName)
Set mastsObj = stencilObj.Masters
Set shpObj = DrawShape(shapeName, mastsObj , oPageActive)
Si j'ai bien compris ta question ça peut peut-être t'aider...
cs_ManuD
Messages postés8Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention 7 mars 2006 6 mars 2006 à 15:31
Merci pour ce début de réponse, je me sens déjà moins seul
Le soucis est que je n'ai pas de méthode DrawShape...
Ni indépendante telle que tu l'as utilisée, ni associée à un objet de type Page.
Peut-être n'ai je pas associé toutes les références nécessaires à mon projet ?
Je vais aller voir sur le net si je trouve quelque chose au sujet de cette méthode DrawShape.
cs_cissou06
Messages postés124Date d'inscriptionmercredi 2 juillet 2003StatutMembreDernière intervention16 mai 20071 6 mars 2006 à 15:39
Moi j'utilise ces lignes de code sous Excel pour créer un graphe à partir de données que je trouve dans une feuille, du coup dans mes références il a fallu que j'ajoute Visio 2000 Type Library. Mais si tu travailles directement sous Visio je ne sais pas ce qu'il te manque...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ManuD
Messages postés8Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention 7 mars 2006 6 mars 2006 à 15:46
Je travaille directement sous Visual Basic 6.0 SP5, et j'ai intégré la référence Visio 2000 Type Library (service release 1)...
J'ai un peu de mal à comprendre pourquoi je n'ai pas accès à cette fonction DrawShape...
A moins que ma référence ne soit pas à jour et qu'il existe une nouvelle version ?
cs_ManuD
Messages postés8Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention 7 mars 2006 6 mars 2006 à 16:46
Mais vive Microsoft !
J'ai cherché une journée entière une méthode pouvant ressembler à Insertshape, CreateShape, AddShape, NewShape ou n'importe quoi de ce genre et en fait c'est Drop ! Pour créer un objet il faut utiliser la méthode drop, je n'en reviens pas, bravo les noms intuitifs...
Merci infiniment pour cette info cissou06 car même si la méthode faisait bien partie de la documentation, je pouvais passer un moment avant de la trouver !
PS : Je vais créer un nouveau post toujours sur la manipulation des objets Visio à partir de VB, comme tu as l'air de bien maîtriser le sujet si jamais tu peux y jeter un oeil je t'en serais éternellement reconnaissant !