IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Utiliser des modules d'autre projets


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut Utiliser des modules d'autre projets
    Bonjour,

    L'ensemble des macros a été splitté en plusieurs projets pour des problèmes d'accès concurrent.

    Je peux ouvrir plusieurs projets en même temps dans le VB Editor mais je n'arrive pas à appeler des modules d'un autre projet. Existe-t-il une syntaxe particulière pour le faire ?

    Merci pour votre aide

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    regardes la commande :


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut
    On dirait que mon IDE ne reconnait pas cette commande.

    J'utilise du VBA pour MicroStation, y a t'il une référence spécifique à ajouter pour cette commande ?

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Aide VBA EXCEL :

    Cet exemple montre comment appeler la fonction macro My_Func_Sum, qui est définie dans la feuille macro MyCustom.xlm (cette dernière doit être ouverte). Dans cet exemple, la fonction accepte deux arguments numériques, 1 et 5.

    mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
    MsgBox "Macro result: " & mySum

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour Remi et AAlex !

    Remi, ici c'est un forum VBA dédié aux applications Office (Word, Excel, PowerPoint, Access, Outlook, Visio...).

    Mais nous essayons aussi de répondre (de nôtre mieux) aux questions VBA pour d'autres applications hôtes, notamment pour des applications CAO ou SIG.

    Pour ce qui concerne MicroStation, il faut que tu étudies son modèle objet programmable avec VBA.

    Dans les applications Office, l'objet Application offre une méthode Run() qui permet d'exécuter une procédure appartenant à un des projets actuellement chargés par l'application.
    C'est ce que AAlex a donné comme exemple avec Excel.

    Mais il n'est pas certain que cette méthode Run() soit proposée par le modèle objet de MicroStation.
    En revanche, il me semble que MicroStation V8 propose une méthode permettant de réaliser un envoi de commandes (key in) au moyen de l'objet CadInputQueue accessible par l'objet Application.

    Par exemple, pour exécuter une macro VBA (on va l'appeler LaMacro) dans un projet déjà chargé:
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CadInputQueue.SendKeyin "VBA RUN LaMacro"
    Peut être aussi, pour charger un projet (nommé LeProjet) et exécuter une macro de ce projet:
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CadInputQueue.SendKeyin "VBA RUN [LeProjet]LaMacro"
    Il faut que tu étudies de très près les possibilités de CadInputQueue (SendCommand, SendKeyin etc.) dans l'aide en ligne.


    Autre piste, référencer un fichier bibliothèque:

    Dans l'environnement VBA, il est prévu qu'un projet puisse en référencer un autre, de manière à pouvoir exécuter et utiliser les procédures et classes publiques qui y sont déclarées: c'est le principe d'une bibliothèque de code.

    Pour celà, dans VBE (l'environnement de développement intégré de VBA) on déroule le menu Outils et on exécute la commande [Références...] pour accéder à une boîte de dialogue dans laquelle on ajoute les fichiers bibliothèques spécifiques à l'application (ici MicroStation) via le bouton [Parcourir...] qui te permet de sélectionner les fichiers des projets bibliothèques (en pensant bien à sélectionner le type de fichier qui convient).


    Tiens nous informés !
    _

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut
    Pour être franc je ne pensais pas tomber sur une spécificité Microstation à ce niveau, je pensais avoir à faire à du VBA générique (d'où mon post ici).
    Je débute encore avec Microstation.

    En tout cas merci beaucoup pour ton explication détaillée JBO. C'est beaucoup plus clair maintenant.

    Je pense que pour mon projet, je vais devoir passer par le CadInputQueue pour appeler la macro existante.
    Ca me fait un peu peur de devoir passer par le ModalHandler mais je n'ai pas le choix a priori

    En effet j'ai peur que le référencement en tant que bibliothèque complique un peu trop le déploiement dans mon cas.

Discussions similaires

  1. Utilisation des methodes d'autres classes
    Par Viscapon dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2008, 22h53
  2. [Python] Est-ce une bonne idée d'utiliser des modules pour stocker des objets ?
    Par Neolander dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 05/04/2008, 14h45
  3. Intégrer des classes d'autre projets dans son JAR
    Par romaintaz dans le forum Maven
    Réponses: 7
    Dernier message: 20/02/2008, 12h02
  4. [MEX] Comment appeler des modules dans un projet
    Par fatenov dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/11/2007, 22h58
  5. [VB]utilisation des modules en vb
    Par zidenne dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/01/2006, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo