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

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

Merci cs_cissou06 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

cs_cissou06 124 Messages postés mercredi 2 juillet 2003Date d'inscription 16 mai 2007 Dernière intervention - 6 mars 2006 à 15:21
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...
cs_ManuD 8 Messages postés jeudi 9 novembre 2000Date d'inscription 7 mars 2006 Dernière intervention - 6 mars 2006 à 15:31
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.
cs_cissou06 124 Messages postés mercredi 2 juillet 2003Date d'inscription 16 mai 2007 Dernière intervention - 6 mars 2006 à 15:39
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...
cs_ManuD 8 Messages postés jeudi 9 novembre 2000Date d'inscription 7 mars 2006 Dernière intervention - 6 mars 2006 à 15:46
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 ?
cs_ManuD 8 Messages postés jeudi 9 novembre 2000Date d'inscription 7 mars 2006 Dernière intervention - 6 mars 2006 à 16:46
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 !
cs_cissou06 124 Messages postés mercredi 2 juillet 2003Date d'inscription 16 mai 2007 Dernière intervention - 6 mars 2006 à 17:31
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.