Attendre moins d'une seconde [Résolu]

Messages postés
34
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
16 mai 2009
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 19 déc. 2015 à 11:36
Bonjour,
J'utilise cette technique pour attendre mais celle-ci ne permet pas d'attendre des temps < 1 seconde.

Private Sub Attendre()
    Dim MaDate As Date
    MaDate = Now
    Do While Abs(DateDiff("s", MaDate, Now)) < 1
        DoEvents
    Loop
End Sub

Il y a bien instruction Sleep mais elle ne me plait pas dit tout.

Quelqu'un aurait-il une solution ?
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
3
Merci
Bonsoir,

En dépit de ce qu'en dit l'aide en ligne, la fonction Timer est xapable de compter en dessous de la seconde et je m'en sers dans certaines circonstances (appréciation de clicks longs, distinction entre un double et un simple click sur certains contrôles

Si tu n'as pas besoin de la plus grande précision, regarde ceci

Private Sub Command1_Click()
  depart = Timer
  Do While Timer < depart + 0.1
   DoEvents
  Loop
  MsgBox Timer - depart
End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jmfmarques
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
16
0
Merci
Salut,

Ben, utilise un timer !!!

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
47
0
Merci
Salut,
Pas mieux.
Tu prends un timer avec lequel tu joues sur les propiétés .Enabled et Interval
Mais le problème c'est que tu n'attends pas au même endroit dans le code.

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
Messages postés
34
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
16 mai 2009
1
0
Merci
Ouai en effet ça peut être une solution, je vais y travailler.
Commenter la réponse de cs_Morinaux
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Salut,

Utilise l'api GetTickCount qui est en milisecondes.





__________
 Kenji
Commenter la réponse de Charles Racaud
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Heu pourquoi ne pas utiliser Sleep ???

Car c'est pas pour dire, mais ta méthode elle occupe 100% du proc pendant l'attente, contrairement à Sleep !
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
j'avoue qu'utiliser DateDiff ici, c'est chasser les mouches au bazooka !

qu'attends tu de particulier ?

as tu besoin d'un intervalle précis ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
34
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
16 mai 2009
1
0
Merci
En fait ce serai pour réaliser une opération différente à chaque à un intervalle plus petit que la seconde.
Donc l'utilisation d'un timer serait une tâche plutôt ardue.

Le programme doit garde le focus et doit rester actif pendant l'attente c'est pour cela que je n'utilise pas Sleep.

Et je souhaiterais si possible ne pas utiliser d'api mais si je n'y arrive pas sans, je me tournerai vers GetTickCount, il doit surement y avoir des exemples d'utilisation sur vbfrance.

Merci
Commenter la réponse de cs_Morinaux
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
utilises un Timer, c'est le plus simple....

"Le programme doit garde le focus et doit rester actif pendant l'attente"

pour quelle raison ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
34
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
16 mai 2009
1
0
Merci
Le programme doit déplacer la souris, cliquer, attendre puis recommencer X fois.

Si j'utilise Sleep le programme cesse de répondre et ça ne marche pas.
Avec le timer je n'ai pas trouvé de solutions simple a mettre en place.

Merci de ton intéressement.
Commenter la réponse de cs_Morinaux
Messages postés
34
Date d'inscription
mercredi 19 novembre 2003
Dernière intervention
16 mai 2009
1
0
Merci
Je ne savait pas que Timer pouvait compter en dessus de la seconde, merci beaucoup de ton aide.
Commenter la réponse de cs_Morinaux
0
Merci
Ou trouve-t-on la fonction sleep sur une calculatrice CASIO graph 95?
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
259 -
Rien à voir avec Visual Basic !
"Bonjour", toutefois, aurait tout-à-voir avec le savoir-vivre ...
Commenter la réponse de azer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.