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

Contribuez Discussion :

Créer une pause en VBA ou Attente une heure précise avant Action


Sujet :

Contribuez

  1. #1
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut Créer une pause en VBA ou Attente une heure précise avant Action
    Bonjour !

    j'ai vu plusieurs fois une demande comment créer une pause dans l'execution de votre code ...

    Voici un code ou il est possible de choisir le temps de pause ou encore jusqu'a un heure spécifier. Vraiment pratique

    j'Ai tiré ce code de ce lien

    Donc Premièrement insérer cette déclaration en tête de module :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' Copyright (c) FMS, Inc. www.fmsinc.com
    ' Licensed to owners of Total Visual SourceBook
    '
    ' Class       : modDateTime
    ' Description : Code for working with date and times
    '
    ' Visual Basic provides many useful functions for dealing with date and time values. 
    ' This module contains code that enhances these functions, with code for adding and subtracting 
    ' dates, handling weekdays, finding the next or previous day, checking for leap years, 
    ' determining ages, calculating differences between dates/times, and more.
    ' Source : Total Visual SourceBook
     
    Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long)
    Pour Attendre quelques secondes appeller cette procédure :


    Procédure à placer dans un module séparé exemple "mod_waitseconds"

    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
    21
    22
    23
    24
    Public Sub WaitSeconds(intSeconds As Integer)
      ' Comments: Waits for a specified number of seconds
      ' Params  : intSeconds      Number of seconds to wait
      ' Source  : Total Visual SourceBook
     
      On Error GoTo PROC_ERR
     
      Dim datTime As Date
     
      datTime = DateAdd("s", intSeconds, Now)
     
      Do
       ' Yield to other programs (better than using DoEvents which eats up all the CPU cycles)
        Sleep 100
        DoEvents
      Loop Until Now >= datTime
     
    PROC_EXIT:
      Exit Sub
     
    PROC_ERR:
      MsgBox "Error: " & Err.Number & ". " & Err.Description, , "modDateTime.WaitSeconds"
      Resume PROC_EXIT
    End Sub
    Exemple d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MsgBox "Cette application va se fermer dans 5 secondes."
    WaitSeconds (5)
    docmd.Quit
    Pour attendre une heure pré-déterminée :


    Procédure a placer dans un module séparé exemple "mod_WaitForTime" :

    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
    Public Sub WaitForTime(datDate As Date)
      ' Comments: Waits until the specified date and time
      ' Params  : datDate         Date/time to wait for
      ' Source  : Total Visual SourceBook
     
      On Error GoTo PROC_ERR
     
      Do
       ' Yield to other programs (better than using DoEvents which eats up all the CPU cycles)
        Sleep 100
        DoEvents
      Loop Until Now >= datDate
     
    PROC_EXIT:
      Exit Sub
     
    PROC_ERR:
      MsgBox "Error: " & Err.Number & ". " & Err.Description, , "modDateTime.WaitForTime"
      Resume PROC_EXIT
    End Sub
    Exemple d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Fermer Access a 11:59 PM
    WaitForTime (Date + #11:59:00 PM#)
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Citation Envoyé par robyseb Voir le message
    P.S. Ne pas mettre l'option Explicit en entête
    Et pourquoi ?

    L'obligation faite de déclarer explicitement ses variables me semble une bonne habitude à prendre, non ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Je suis d'accord avec toi mais, ici ca cause une erreur .... même si elle est déclaré !!
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Je ne constate pas cette erreur, en tout cas à la compilation.

    Sur quelle ligne ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  5. #5
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Mystère et boule de gomme !!

    plus d'erreur moi non plus ... merci domi2

    *Post corrigé
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  6. #6
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut ESSAI
    Bonjour,

    Je viens d'essayer la proposition de mise en attente quelques secondes et je dois déclarer la variable sans lequel je constate l'erreur la variable sleep non définit.

    merci pour ce petit code

Discussions similaires

  1. [AC-2003] Créer une table temporaire a partir d'une requête en VBA
    Par Williamm dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/06/2011, 08h55
  2. [XL-2007] Créer une liste en VBA à partir d'une pivottable
    Par yzf-r dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/02/2011, 20h29
  3. [VBA]Comment faire une pause
    Par Thierry'' dans le forum VBA Access
    Réponses: 14
    Dernier message: 14/04/2007, 14h42
  4. Faire une "Pause" en VBA
    Par Keuf95 dans le forum Access
    Réponses: 2
    Dernier message: 22/06/2006, 15h31
  5. [VBA-E]Ouvrir une image jpg àl'aide d'une macro
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/03/2006, 09h47

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