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 :

appeler un événement toutes les demi-secondes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut appeler un événement toutes les demi-secondes
    Bonjour !!
    Contexte : j'ai une appli excel qui réagit à la pression de touches du clavier, n'importe quand
    Parallèlement, je veux exécuter une procédure toutes les demi-secondes

    Problème :
    1) j'ai essayé la méthode onTime, mais apparemment le temps de base est la seconde: si je mets un Now + 0.000005 , les exécutions de ma procédure se font à la suite instantanément, sans attendre les 500ms, donc je passe de trop lent (1s) à trop rapide (aucune interruption temporelle)

    2) j'ai essayé la méthode Timer,
    Do While Timer < start + timeEvent
    DoEvents
    Loop

    mais les pressions de touches ne lancent plus les procédures (je pensais pourtant que le DoEvents le permettrait)

    Avez-vous une solution ?

    Merci par avance

  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
    Tu peux utiliser GetTickCount& dans une boucle.
    Te donne en ms le temps écoulé depuis l'ouverture du pc. Tu mesures en dynamique le tps qui s'écoule dans une boucle avant de relancer ta procédure avec OnTime(Now)
    Pour plus de détails sur GetTickCount&, regarde
    Tu dis

  3. #3
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut
    j'ai essayé en faisant ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Dim start
        start = GetTickCount&
        While True
            Do While GetTickCount& < start + timeEvent  'timeEvent = 500
                DoEvents
            Loop
            myProcedure
            start = GetTickCount&
        Wend
    mais j'ai le même problème qu'avec ma solution timer, à savoir que ma feuille excel ne réagit plus aux pressions de touches pendant la boucle contenant DoEvents ...

  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
    Non je voyais une boucle ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim arrivée As Double
        arrivée = GetTickCount& + 500
        Do While GetTickCount& < arrivée
        loop
    La différence ? Une variable de moins et arrivée As Double

  5. #5
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut
    oui, mais ça ne résout pas mon problème, qui est que pendant la boucle, les méthodes "onKey" que j'ai mises ne marchent plus ...

  6. #6
    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
    Tu peux mettre plus de code ? Où places-tu ton Onkey ? Peut-être serait-il intéressant qu'on ait le code de "myProcedure"

Discussions similaires

  1. Appeler une fonction php toutes les x secondes
    Par alex_is_there dans le forum Langage
    Réponses: 7
    Dernier message: 20/04/2008, 11h32
  2. Réponses: 7
    Dernier message: 13/01/2008, 16h52
  3. Appel d'une procedure toute les S secondes
    Par thierrybatlle dans le forum Composants VCL
    Réponses: 3
    Dernier message: 01/02/2006, 13h46
  4. [Thread]Lancer mon programme toutes les 60 secondes?
    Par danje dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 24/11/2005, 21h55
  5. [MFC] rafraichissement toute les X secondes
    Par benahpets dans le forum MFC
    Réponses: 4
    Dernier message: 22/06/2005, 10h53

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