Comment ajouter une Shape dans un document Vision à partir de VB [Résolu]

Messages postés
8
Date d'inscription
jeudi 9 novembre 2000
Dernière intervention
7 mars 2006
- - Dernière réponse : cs_cissou06
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Dernière intervention
16 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...

Si quelqu'un a une idée...

En vous remerciant par avance.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Dernière intervention
16 mai 2007
3
Merci
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!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Dernière intervention
16 mai 2007
0
Merci
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...
Messages postés
8
Date d'inscription
jeudi 9 novembre 2000
Dernière intervention
7 mars 2006
0
Merci
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.

En tout cas merci pour ton attention.
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Dernière intervention
16 mai 2007
0
Merci
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...
Messages postés
8
Date d'inscription
jeudi 9 novembre 2000
Dernière intervention
7 mars 2006
0
Merci
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 ?
Messages postés
8
Date d'inscription
jeudi 9 novembre 2000
Dernière intervention
7 mars 2006
0
Merci
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 !
Messages postés
124
Date d'inscription
mercredi 2 juillet 2003
Dernière intervention
16 mai 2007
0
Merci
Je veux bien y jeter un oeil mais je ne te promets rien. Les apparences sont parfois trompeuses

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.