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 6 et antérieur Discussion :

[VB6] Créé une temporisation


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut [VB6] Créé une temporisation
    Bonjour a tous
    J'aimerais créé une temporisation entre deux meme instruction, je m'explique
    lorsque je click sur un boutton de commande, je repete 120 fois la meme instruction et j'aimerais qu'entre chaque instruction lorsque je fait fonctionner mon programme 2 secondes s'écoule si c'est possible
    Gros bizou

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Tu peux placer un contrôle TIMER sur ta feuille et déterminer son intervale à 2000 ( millisecondes )...
    En laissant sa propriété ENABLED à TRUE, il déclenche dès le chargement de la feuille. L'évènement TIMER se déclenchera à chaque durée révolue précisée dans l'intervale, tant que la propriété ENABLED restera à TRUE

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    salut , je te conseil d'utiliser le composant TIMER qui permet d'effectuer un bout tous les intervalles X , c'est toi qui definit la valeur de ton intervalle :

    exemple : X =2000ms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Timer1_Timer()
    TaFonction
    end sub

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Bonjour à tous,


    Personnellement j'utilise la petite procédure suivante après avoir placé un contrôle TIMER sur la feuille en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub tempo(pause)
    Start = Timer
    Do While Timer < Start + pause
    DoEvents
    Loop
    End Sub
     
    L'appel de cette procédure pour 2 secondes de temporisation sera donc :
     
    call tempo(2)
    Je vais peut-être les chercher un peu loin mais ça fonctionne très bien.

    Bonne journée à tous,

    Philippe

    PS : Je retourne à mes problèmes de résolution d'écran, je vais péter mon câble

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Flup
    ...
    Je vais peut-être les chercher un peu loin mais ça fonctionne très bien.
    ...
    oui pour ce code tu n'as pas besoin de contrôle timer ... remplace timer par now..

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par bbil
    oui pour ce code tu n'as pas besoin de contrôle timer ... remplace timer par now..
    Salut Bbil,


    J'ai du louper kek chose, j'ai essayé ton astuce et ça ne marche pas ... Faut dire aussi qu'il y a un sacré moment que je n'ai plus mis le nez dans VB, ceci explique certainement cela

    Bonne journée

    Philippe

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    J'ai du louper kek chose
    Tu as surtout confondu un contrôle Timer (totalement inutile ici) avec la fonction Timer (qui est autre chose)

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Ce qui m'étonne dans la fonction Tempo de Flup, c'est que l'on ne gère pas l'évènement "temps révolu".

    Il me semble que les solutions de Flup et Bbil ne répondent pas à la question initiale...

    Et en fait, je ne vois pas bien à quoi sert la proc Tempo, puisque le "Do events" laisse la main et que rien ne se pass en fin de proc...

    Je pense, mais le questionneur de base ne se manifeste pas, que pour gérer un évènement qui doit survenir toutes les x secondes, utiliser un objet timer avec la propriété "intervale" spécifiée à 1000x est la plus judicieuse...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ce qui m'étonne dans la fonction Tempo de Flup, c'est que l'on ne gère pas l'évènement "temps révolu".
    Et c'est quoi, alors, la variable Pause ?
    Un contrôle timer est là inutile

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Cela étant, on peut utiliser la fonction Timer pour bloquer l'exécution du code durant x secondes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Do
            Debut = Timer
            Do While Timer() < Debut + 2
            Loop
            MaProc
        Loop
    Dans ce cas, pas besoin du contrôle Timer

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    il y a aussi l'API Sleep pour faire attendre le prog...
    (cf FAQ)
    Moi, j'aime pas facebook.

    Musiciens de France

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Merci a tous je v essayer cela
    gros bizou

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Bonjour

    Ce qui m'étonne dans la fonction Tempo de Flup, c'est que l'on ne gère pas l'évènement "temps révolu".

    Il me semble que les solutions de Flup et Bbil ne répondent pas à la question initiale...

    Et en fait, je ne vois pas bien à quoi sert la proc Tempo, puisque le "Do events" laisse la main et que rien ne se pass en fin de proc...

    Je pense, mais le questionneur de base ne se manifeste pas, que pour gérer un évènement qui doit survenir toutes les x secondes, utiliser un objet timer avec la propriété "intervale" spécifiée à 1000x est la plus judicieuse...
    Bonjour Pierre,

    A la relecture du problème initial, je me demande effectivement si j'ai réellement bien compris la question.

    Pour expliquer ma solution voilà une petite bêtise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i=0 to 3
    label1(i)= "Ceci"
    CALL Tempo(1)
    lable1(i)= "est"
    CALL Tempo(1)
    lable1(i)= "un exemple"
    next i
    L'utilité (toute relative) est de créer une temporisation d'une seconde entre l'affichage de chaque label. Parfois, cela donne au programme une figure plus "humaine".

    Pour répondre à Jmfmarques, la variable "pause" est reprise en argument dans la déclaration de la procédure Tempo pour régler la durée de la temporisation.

    Comme je le disais plus haut, il y a vraiment très longtemps que je n'ai plus utilisé VB, je crois d'ailleurs que je vais en rester là (je bute sur un problème d'affichage qui commence à me gaver grave, après 3 jours, c'est bon ) et je demande donc votre indulgence si je tourne autour du pot

    Bonne journée à tous et merci pour les commentaires et critiques, c'est cela qui fait avancer (dans mon cas, vous allez avoir un boulot monstre )

    Philippe

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Flup bonjour,

    Ta temporisation est bonne, sois rassuré !
    Simplement : elle n'a nul besoin d'être accomapgnée de l'insertion d'un Timer dans le projet
    Elle tourne avec la fonction Timer, qui suffit ....
    Quant à ma remarque sur Pause, ce n'est pas à toi qu'elle s'adressait, mais à celui qui se demandait où était défini le temps d'attente

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 55
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par jmfmarques
    Flup bonjour,

    Ta temporisation est bonne, sois rassuré !
    Simplement : elle n'a nul besoin d'être accomapgnée de l'insertion d'un Timer dans le projet
    Elle tourne avec la fonction Timer, qui suffit ....
    Quant à ma remarque sur Pause, ce n'est pas à toi qu'elle s'adressait, mais à celui qui se demandait où était défini le temps d'attente
    Bonjour Jmfmarques,

    Et en plus j'ai besoin de nouvelles lunettes .... Toutes mes excuses pour t'avoir indûment mis en cause, encore une fois, j'avais mal lu.

    J'ai comme l'impression que je fais un potage super classe avec la FONCTION et le CONTROLE Timer. C'est décidé, je reprends le tricot, pfffffffff

    Très bonne journée à toi

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Flup
    Salut Bbil,
    ....

    J'ai du louper kek chose, j'ai essayé ton astuce et ça ne marche pas ...
    ..
    Philippe
    oui j'ai oublié ... la covertion en format date de la valeur de pause...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub tempo(pause)
    FinTempo = Now + TimeSerial(0, 0, 2)
    Do While Now < Start + FinTempo
    DoEvents
    Loop
    End Sub
     
    Sub test()
     Debug.Print Now
     Call tempo(2)
     Debug.Print Now
     End Sub
    sinon tu ne peu pas utiliser timer du moins pour une temporisation se déroulant au alentour de minuit.. - pause... , timer représentant le nombre de secondes depuis minuit..

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je viens de comprendre ( style: mon euro vient de tomber ) avec l'exemple de Flup, à quoi servait sa proc et comment l'utiliser... tout bon...

    Je l'ai reprise pour moi, sur base de Now() pour tenir compte de la remarque de Bbil concernant la proximité de minuit, et j'y ai ajouté un paramètre pour déterminer si l'on utilise le DoEvents ou non durant la pause.

    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
     
    Sub Tempo(Duree As Double, Optional Events As Boolean)
        ' Durée est exprimé en secondes
        ' Si Events = True, les évènements sont gérés durant la pause,
        ' Si Events est False ou omis, la proc bloque les évènements
     
        ' Par rapport à Now, les secondes doivent être divisées par (24*3600)
     
        Dim Debut As Date
     
        Debut = Now
        Do While Now < Debut + (Duree / 24 / 3600)
            If Events Then DoEvents
        Loop
    End Sub
    J'espère que vous y trouverez votre bonheur. Merci à Flup pour l'idée
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    j'ai essayé les differents code que vous avait proposé mais je n'y arrive pas pouvais vous expliqué les lignes des programmes par des commentaire simplement pour que je puisse comprendre et ainsi adapter a ma situation

  19. #19
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Cela dépend du code de ton bouton. Tu peux le donner en copie si tu le souhaites.

    Tu places la proc de Flup ou la mienne dans un module standard.

    Le code événementiel de ton bouton ressemblera à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sub Monbouton_Click()
        dim Comtpeur as integer
        for compteur = 1 to 120
            ProcRepetee
            Tempo 2
        next compteur
    Ok?

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [VB6] Exécuter une macro Access
    Par Nektanebos dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/02/2006, 16h32
  2. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  3. [VB6] parcourir une arborescence de repertoire
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 17h33
  4. [VB6]Créer une Base de données
    Par ThierryAIM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/04/2003, 17h24
  5. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32

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