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

Macros et VBA Excel Discussion :

[VBA-E]Comment lancer une procedure lors d'un changement de variable ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut [VBA-E]Comment lancer une procedure lors d'un changement de variable ?
    Bonjour,

    Je cherche un moyen de lancer une procedure qui se trouve dans une macro complementaire, lorsqu'une variable voit sa valeur modifiée dans le programme principal.

    J'ai trouvé ce post, mais je ne sais pas comment utiliser les "set et les "get" pour arriver à mes fins.
    D'avance, merci.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Est-toi qui a écrit la macro complémentaire ? Si oui, tu peux lui adresser des paramètres.
    Sinon, si elle accepte des paramètres, pourquoi ne pas l'appeler avec les paramètre qu'elle attend ? Et si on pousse plus loin : Si elle attend des paramètres mais que tu ne peux pas les lui envoyer, à quoi sert-elle ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Bonjour ouskel'n'or,
    Et merci beaucoup pour ta réponse.
    Oui c'est bien moi qui ai écris la macro complementaire.
    Dans celle-ci j'y ai défini un type de varible personalisé, et des procedures particulières que j'aimerai voir executées lorsque dans le programme principal, un élement de ma variable "maison" , est modifié.


    Je m'explique, ma macro complémentaire est un module de calculs de nombres complexes. (oui je sais excel integre une macro complementaire, mais j'avais un peu de mal a l'utiliser, alors j'ai voulu faire la mienne, et puis en plus c'est marrant). Jusque là, il y avait tout ce qui falait pour manipuler les nombres complexes, lorsqu'ils étaient définis en réel/imaginaire. Mais pas en module phase.
    Alors dans ma variable "complex" (voir ci-dessous), j'ai voulu ajouter les elements .m (module) et .p (phase).
    Et ce que je voulais, c'etait que les elements .m et .p soient automatiquement calculés dès que .R et .i se voyaient affecté dans mon programme principal.
    Et vice-versa, que .R et .i soient calculés lorsque .m et .p sont modifiés.
    Tout cela de manière totalement transparente pour le programme principal.

    D'ou l'idée du lancement d'un procedure lorsqu'une variable est modifiée.

    Je suis débutant et je ne sais pas comment gerer les evenements.
    C'est pour cela que je voulais savoir à quoi pouvait ressembler le code qui permet de lancer une procedure, lorsqu'une variable est modifiée.



    Pour info, ci-dessous, le tout debut de ma macro complémentaire avec la variable type complexe, et les deux procedures qui doivent se lancer sur modification des élements de la variable.

    Code : 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
    Type Complex
    R as double        'Partie Réele
    i as double        'Partie Imaginaire
    m as double        'Module
    p as double        'Phase
    end type
     
    Sub Qd_r_ou_i_est_modifié()
    With complex
    .m = Sqr(r^2+i^2)[
    .p = atn(i/r)
    End With
    End sub
     
    Sub Qd_m_ou_p_est_modifié()
    With complex
    .r = m * cos(p)
    .i = m * sin(p)
    End With
    End sub

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ton problème est très intéressant même si j'ignore comment le résoudre.
    Je pense néanmoins à un module de classe avec déclaration de tes variables en tant qu'objets, tout événement les affectant lançant l'exécution de ta xla.
    Passionnant mais je n'en connais pas assez sur les modules de classe et je ne vois pas comment réaliser ça.
    Tu devrais poser la question sur le forum VB (sans parler de xla... because, dans vb... ) en évoquant simplement le lancement d'une procédure sur événement affectant une variable.
    A toutes fins utiles.

    PS - si on te donne la réponse, merci de nous la mettre ici

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Merci beaucoup ouskel'n'or, pour ta réponse et ton interet.
    Je pense aussi qu'il faudra s'interesser à la gestion de classes.

    Je vais essayer d'aller demander ca sur un forum vb.

    Bien entendu je vous retranscrit la reponse si je l'obtient.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    En glannant des infos sur le net j'ai pu apprendre quelques trucs, mais les trucs que j'ai trouvé sont souvent incomplets, inadaptés par rapport à ce que je voudrait faire.
    Incomplets à mon niveau, car les explications données supposent deja de larges connaissances.
    De plus je me demande si les explications de VB en .net sont applicable en VBA.

    J'ai lu le tutoriel de developpez.net sur les evenements, est-ce que vous connaissez d'autres tutos bien fournis sur le vb, et en particulier sur les evenements, mais qui definit bien les bases, pour que qq1 de mon niveau puisse y acceder ?
    Par exemple l'aide de visual basic 2005 express m'a paru très instructive et accessible, connaissez-vous des tutoraux semblables ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment lancer une procedure
    Par chakir76 dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/12/2013, 09h40
  2. [WD15] Comment lancer une procedure stockée sql ?
    Par NULLSQL dans le forum WinDev
    Réponses: 2
    Dernier message: 28/05/2010, 20h17
  3. Réponses: 10
    Dernier message: 22/05/2007, 20h37
  4. Réponses: 20
    Dernier message: 03/04/2007, 16h45
  5. Réponses: 2
    Dernier message: 27/09/2006, 19h41

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