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 :

Probleme de temporisation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut Probleme de temporisation
    Bonjour à tous,

    Pour mon projet, j'aimerais afficher un userform montrant que le calcul est en cours avec une barre de progression. Le problème est que vba "zappe" l'affichage de l'userform ainsi que l'evolution de la barre de progression. J'ai donc pensé à utiliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now + TimeValue("00:00:1"), "my_Procedure"
    Mais 1s c'est trop long!!! J'aimerais attendre 1ms avant de déclencher la prochaine étape de calcul (qui se décompose en 7 étapes distinctes).
    J'ai pensé au Timer mais je n'arrive à l'utiliser comme il faut...
    L'idée est d'afficher l'userform dès l'ouverture de la macro avec la progressbar à 0, puis de lancer successivement les étapes du calcul avec entre chaque étape le rafraichissement de l'userform et de sa progressbar.
    Le code que j'ai fonctionne très bien! Mais je me suis cassé la tête (avec votre aide par ailleurs) pour optimiser la durée des calculs. Ce n'est donc pas pour perdre du temps avec l'affichage d'un userform... J'espère être assez clair !
    En résumé, je veux juste pouvoir temporiser mon application pendant 1ms entre deux procédure.

    Pouvez-vous m'aider ???

    Merci d'avance

    Lyonel

  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
    1 ms, je n'y crois pas mais je t'offre 16 ms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Declare Function GetTickCount& Lib "kernel32" ()
    Sub TestMs()
    Dim Depart As Double, Arrivee As Double
        Depart = GetTickCount&
        Do While GetTickCount& < Depart + 1
        Loop
        Arrivee = GetTickCount& - Depart
        MsgBox Arrivee
    End Sub
    En attendant qu'un Application.Wait(Now + TimeValue("0:00:00:001")) nous soit révélé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    je travaille sur un pc dans mon entreprise et je n'ai pas l'autorisation d'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Public Declare Function GetTickCount& Lib "kernel32" ()

    Aurais-tu une idée pour éviter ce genre d'inconvénient ?
    En tous les cas merci pour ta réponse. Dès que je pourrais l'essayer sur mon pc personnel (c'est à dire ce soir) je te ferais savoir ce que ça donne...

    Merci encore et bonne jounrée !!

    Lyonel

  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
    je n'ai pas l'autorisation d'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Public Declare Function GetTickCount& Lib "kernel32" ()
    Aurais-tu une idée pour éviter ce genre d'inconvénient ?
    Alors tu n'arriveras à rien si tu n'as pas ce type de possibilité. Il faut bien que tu aies accès à un dll pour faire ça, sans quoi VBA Excel se retrouve tout nu avec son wait en seconde ou son timer itout...
    J'ignore ce que tu veux faire d'une ms mais as-tu essayé
    ?

  5. #5
    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 devrais jeter un oeil , le fichier joint affiche le temps qui passe par une toupie fabriquée à la main , peut-être celà te donnera-t-il une idée. Dans la procédure d'affichage, je crois me souvenir que j'utilise un simple compteur (For i = 1 to ...)
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    merci pour tout ! C'est assez incroyable mais je n'ai pas accès a tout les dll nécessaire sous VBA pour certaine appli... A vrai j ai mm pas le droit d'utiliser les ports usb de mon pc pour vous dire le niveau de sécurité auquel je suis soumis ... En tous cas la toupie faite maison fonctionne tres bien. Merci beaucoup

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

Discussions similaires

  1. probleme de temporisation
    Par iragorn dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 11h16
  2. Probleme de temporisation
    Par gilles641 dans le forum Langage
    Réponses: 15
    Dernier message: 15/07/2005, 09h18
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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