Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Visio

Visio Forum d'entraide sur Microsoft Office Visio (schémas et diagrammes)

Réponse
 
Outils de la discussion
Vieux 25/08/2008, 09h32   #1 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut ouverture d'un objet au demmarage

Bonjour,

Dés l'ouverture de la page je voudrais lancer un module de classe

Lorsque je selectionne le composant et que je vais dans fenetre -> afficher la feuille shapsheet j'ecris la macro suivante dans EvtDblClick
=RUNMACRO("Common.ConfigureShape")

Moi je voudrais effectuer ceci pas sur le EvtDblClick du composant mais au demarrage

des idées?
merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 09h59   #2 (permalink)
Membre régulier
 
Date d'inscription: mai 2008
Âge: 23
Messages: 136
Par défaut

Bonjour

Dans VBA

Procédure à la création du document pour le lancement d’un modèle:
Code :
Private Sub Document_DocumentCreated(ByVal doc As IVDocument)
Procédure à l’ouverture du document :
Code :
Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
Si c'est au démarrage de Visio [Non Résolu] voir Conversation :
folder-startup-autorun-vba
nicolas_151 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 10h07   #3 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

OK pour ceci mais ca fais pas ce que je voudrais

car moi je voudrais double cliquer sur certain composant au demarrage et avec la fonction
Code :
Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
je ne peu pas lancer la macro d'un module de class

je pense plutot que dans la feuille shapesheet du composant je lui lance la macro au demarage est ce que peu etre avec les event
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 10h12   #4 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Citation:
Envoyé par cortex59 Voir le message
OK pour ceci mais ca fais pas ce que je voudrais

car moi je voudrais double cliquer sur certain composant au demarrage et avec la fonction
Code :
Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
je ne peu pas lancer la macro d'un module de class

je pense plutot que dans la feuille shapesheet du composant je lui lance la macro au demarage est ce que peu etre avec les event
Je pense qu'il faut que tu clarifies ta pensée et tes objectifs, car pour ma part, j'ai beaucoup de difficultés à cerner ce que tu souhaites réellement effectuer.

Quoi qu'il en soit, pour utiliser un module de classe, tu dois instancier un objet typé sur la classe. Tu ne peux utiliser les propriétés et méthodes d'un module de classe que au travers de cet objet, et jamais directement sur la classe. (voir mon tuto sur les classes). Que la macro soit lancée par double-click ou à l'ouverture du document ne change rien à cela.
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 11h13   #5 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

OK je recommence plus clairement

Donc j'ouvre un .VSD, sur ce fichier j'ai des composants,

lorsque je double clic dessus je realise une fonction (module de class), grace a RUNMACRO("Common.ConfigureShape") dans fenetre-> afficher shapesheet EvtDblClic

Moi je voudrais qu'a l'ouverture de ce fichier je n'est pas a double cliquer sur ce composant mais qu'il execute RUNMACRO("Common.ConfigureShape") tout seule
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 11h25   #6 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Je suis quasi certain que Common ne représente pas une classe (module de classe) car RUNMACRO ne peut lancer que des macros se trouvant dans des modules standard.

Donc, en jouant un peu au devin, tu dois avoir un module standard nommé Common qui contient une macro nommée ConfigureShape.

Si c'est le cas, il suffit d'appeler cette procédure au démarrage
Code :
Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
    Common.ConfigureShape
End Sub
 
Si ConfigureShape est unique dans les modules, le préfixe Common est superflu.
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h30   #7 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

OK
Comment je peu selectioner un composant sur la page car il faut que le composant sont selectionner pour lancer Common.configure

Code :
Dim sel As Visio.selection
Dim shp As Visio.shape
 
Set sel = Visio.ActiveWindow.selection
Set shp = ???

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h36   #8 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Où se trouve common.configure. C'est du vba?
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h41   #9 (permalink)
Membre régulier
 
Date d'inscription: mai 2008
Âge: 23
Messages: 136
Par défaut

aide de la commande select

Citation:
Sélectionne ou désélectionne un objet.

object.Select (SheetObject, SelectAction)
object Obligatoire. Expression qui renvoie un objet Window ou Selection contenant les formes.

SheetObject Obligatoire. Expression qui renvoie un objet Shape pour sélectionner ou désélectionner.

SelectAction Integer obligatoire. Type d'action de sélection à effectuer.



Disponible à partir de
2.0

Notes
Utilisée avec l'objet Window, la méthode Select affectera la sélection dans la fenêtre Microsoft Office Visio. Toutefois, l'objet Selection est indépendant de cette sélection et, de ce fait, l'utilisation de la méthode Select avec un objet Selection n'affecte que l'état de l'objet en mémoire ; la fenêtre Visio ne l'est pas.

Les constantes suivantes déclarées par la bibliothèque de types de Visio dans VisSelectArgs indiquent des valeurs valides pour les types de sélection.

Constante
Valeur
Description

visDeselect
1
Désélectionne une forme, mais ne modifie pas le reste de la sélection.

visSelect
2
Sélectionne une forme, mais ne modifie pas le reste de la sélection.

visSubSelect
3
Sélectionne une forme dont le parent est déjà sélectionné.

visSelectAll
4
Sélectionne une forme et tous ses homologues.

visDeselectAll
256
Désélectionne une forme et tous ses homologues.


Si SelectAction est visSubSelect, la forme parent de SheetObject doit déjà être sélectionnée.
nicolas_151 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h49   #10 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

common ce situe dans modules

mais il faut que le composant soit selectionner pour que la fonction "Common.configure" fonctionne
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h51   #11 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

En ce qui me concerne, je reste sur ma faim quant à la location de common.configure ou common.configureshape...

Sans plus de précisions, cela va devenir difficile de pouvoir aider davantage!
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h59   #12 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

DONC je reprend
lorsque je DBl clique sur le composant, le lance la fonction common.configureshape, (dans Module), cette fonction permet d'executer une fonction dans module de classe.

donc au demarage de la page, je voudrais executer la fonction dans module de classe (mais pas possible directement) donc je lance la fonction common.configureshape (ca c OK) mais pour allez a la fonction dans module de classe il faut que mon composant soit selectionner (comme quand tu fais un clic dessus)

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h04   #13 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Nicolas t'a donné l'aide sur la sélection d'un objet.

Quant à moi, je reste persuadé qu'il ne s'agit pas d'un module de classe, mais bien d'un module standard.

Tant que le doute ne sera pas levé là-dessus et que tu n'auras pas mis le code de la conction configureshape, nous tournerons de toute façon en rond.

Il faut bien comprendre que nous ne sommes pas derrière ton écran, et que nous avons donc besoin de tout élément susceptible de nous aider...

Par rapport à ma demande initiale, tu n'as jusqu'ici rien apporté de nouveau
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h09   #14 (permalink)
Membre Confirmé
 
Date d'inscription: mars 2008
Messages: 202
Par défaut

Je des bien dit dans 2 post differehnt que ct un module (donc standart) et pas un module de classe pour common.configureshape
le code ne te servira a rien il y a plein de fonctions imbriqué (une usine a gaz lol)

donc maintenant il me faut selectionner un composant, je connait sont nom.

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h19   #15 (permalink)
Membre régulier
 
Date d'inscription: mai 2008
Âge: 23
Messages: 136
Par défaut

Aller réglons le problème

Voila le code

Code :
 
Dim sel As Visio.selection 
Set sel = Visio.ActiveWindow.selection
 
sel.Select ActivePage.Shapes.Item("nom objet"), visSelect
nicolas_151 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Visio

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide