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

VB.NET Discussion :

[VB.Net 2010;2013]Gestion des évènements (DLL, tlb ) Et VBA Excel


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut [VB.Net 2010;2013]Gestion des évènements (DLL, tlb ) Et VBA Excel
    Bonjour,
    J’ai développé une DLL qui après exécution génère un événement que je voudrai intercepter dans une application VBA Excel !

    quand je regarde sur internet, je trouve une implémentation de WithEvents( VB.net), mais elle me propose des événement d'un contrôle standard Clik, change etc...

    si j’excepte l'affectation du WithEvents et Sub scr_Acction () elle fonctionne!
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Class toto
        Delegate Sub _Acction()
        Event Acction As _Acction
        Public Sub Run()
            RaiseEvent Acction()
        End Sub
    End Class

    Code Module de classe Excel VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private WithEvents scr As ScriptControlRD.ScriptControlRD
     
    Public Property Let Language(Value As String)
    scr.Language = Value
    End Property
    Public Property Get Language() As String
    Language = scr.Language
    End Property
    Public Sub AddCode(Code)
     scr.AddCode Code
     End Sub
    Public Sub AddObject(Virtuel As String, Phisique As Object)
      scr.AddObject "This", ThisWorkbook
      End Sub
     Public Sub ModulesAdd(Modul As String)
     scr.ModulesAdd Modul
     End Sub
     Public Sub Run(Optional ByVal Metthode As String = "")
     scr.Run Metthode
     End Sub
    'là je voudrai récupéré l'événement! 
    Private Sub scr_Acction ()
    End Sub
    Private Sub Class_Initialize()
    Set scr = New ScriptControlRD.ScriptControlRD
    End Sub
     
    Private Sub Class_Terminate()
    Set scr = Nothing
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ne vous laissé pas impressionner par les étoile sur mes épaulette, je les ai acquis sur le forum Excel VBA , ici je suis un débutant!


  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Tu as pas mal d'explication dans ce post et les suivants, peut être trouveras-tu ce que tu cherches.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci rv26t,
    Je regarde.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour le forum et Bonjour rv26t,
    @rv26t: J'ai bien suivi le lien que tu m'as donné, mais mon problème n'est pas exactement ça. En effet ici il n'est pas question de faire une dll utilisable dans Excel car ma dll fonction dans déjà dans Excel.

    Si j'execute mon code dans vba je dois attendre la fin de la macro pour terminer mon code alors que dans une dll les macros s'exécutent en parallèle

    Ma dll a pour objet d'exécuter des actions en multithread, la dll s'exécute correctement dans Excel mais redonnes la main a vba ce qui est bien le but et le programme ce termine correctement.

    Sauf que je voudrais intercepter l'événement Action pour finir le traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub Run()
            RaiseEvent Action()
        End Sub
    a l'exception du traitement de l'événement, le programme réagit comme je le souhaite, a savoir exécute les trois macro dont j'ai besoin, chaque macro durant 3 minutes environ, elle s'exécute bien en 3 minutes environ au lieu de 9 minutes dans le seul vba.

    Ensuite il y a bien un problème de distribution de la dll car elle fonctionne que sur la machine qui la compilé mais je pensais ouvrir une autre discussion sur le sujet!

    Petite précision, quand j'utilise la dll dans un projet vb.net, excepté la gestion de l'événement, elle fonctionne sur toutes les machine quelque que soit la version de Windows!
    Dernière modification par Invité ; 15/07/2015 à 08h54.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,je réactualise

Discussions similaires

  1. Gestion des évènements et dll
    Par declencher dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2008, 12h14
  2. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  3. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  4. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04
  5. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

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