[aide] Pauser une macro entre 1 et 60 secondes aléatoirement ?
4 réponses
albert
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce
nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches
infructueuses sur google il
semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle
année. ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Albert,
Déclarations des variables : Dim S As Double Dim Arret As Integer
'Variable contenant le nombre de seconde 'que la macro doit arrêter Arret = 5 'secondes
'Section à insérer dans ta procédure où tu désires que ton code s'arrête. '------------ S = Timer + Arret While Timer < S DoEvents Wend '------------
P.S. à cause de la nature de Timer, cette macro ne doit pas débuter une journée et se terminer une autre journée. exemple : 23:59:15 et se terminer à 00:00:22 sec.
Salutations!
"albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$ Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)
Albert
Bonjour Albert,
Déclarations des variables :
Dim S As Double
Dim Arret As Integer
'Variable contenant le nombre de seconde
'que la macro doit arrêter
Arret = 5 'secondes
'Section à insérer dans ta procédure où tu désires
que ton code s'arrête.
'------------
S = Timer + Arret
While Timer < S
DoEvents
Wend
'------------
P.S. à cause de la nature de Timer, cette macro ne
doit pas débuter une journée et se terminer une autre journée.
exemple : 23:59:15 et se terminer à 00:00:22 sec.
Salutations!
"albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$636a15ce@news.free.fr...
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce
nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches
infructueuses sur google il
semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle
année. ;-)
Déclarations des variables : Dim S As Double Dim Arret As Integer
'Variable contenant le nombre de seconde 'que la macro doit arrêter Arret = 5 'secondes
'Section à insérer dans ta procédure où tu désires que ton code s'arrête. '------------ S = Timer + Arret While Timer < S DoEvents Wend '------------
P.S. à cause de la nature de Timer, cette macro ne doit pas débuter une journée et se terminer une autre journée. exemple : 23:59:15 et se terminer à 00:00:22 sec.
Salutations!
"albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$ Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)
Albert
JB
Bonjour,
On passe en paramètre le temps d'attente:
Sub essai() TempoNonBloquante 3 Range("a1") = "ok" TempoNonBloquante 5 Range("a1") = "ok2" End Sub
Sub TempoNonBloquante(t) fin = DateAdd("s", t, Now) Do While Now < fin DoEvents Loop End Sub
Cordialement JB
Bonjour,
On passe en paramètre le temps d'attente:
Sub essai()
TempoNonBloquante 3
Range("a1") = "ok"
TempoNonBloquante 5
Range("a1") = "ok2"
End Sub
Sub TempoNonBloquante(t)
fin = DateAdd("s", t, Now)
Do While Now < fin
DoEvents
Loop
End Sub
Cordialement. Daniel "albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)
Cordialement.
Daniel
"albert" <nomail> a écrit dans le message de news:
43bc6a1b$0$27621$636a15ce@news.free.fr...
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes
(ce
nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches
infructueuses sur google il
semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette
nouvelle
année. ;-)
Cordialement. Daniel "albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)
Albert
albert
Bonjour à tous,
Merci pour votre aide précieuse. ;-) Même si je ne suis pas arrivé à faire fonctionné vos suggestions comme je le souhaitais, elles m'ont permis par bonheur de trouver ce qui me convenait (merci aussi à Google!):
Sub Wait() 'would return a random number between 1 and 60
Dim LRandomNumber As Integer LRandomNumber = Int((60 - 1 + 1) * Rnd + 1)
Application.Wait Time + TimeSerial(0, 0, LRandomNumber)
'Application.Wait Time + TimeSerial(0, 0, 60) ' Continues here after pause
End Sub
Merci encore je suis ravis! :-) Cordialement, Albert
Cordialement. Daniel "albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)
Albert
Bonjour à tous,
Merci pour votre aide précieuse. ;-)
Même si je ne suis pas arrivé à faire fonctionné vos suggestions comme je le
souhaitais, elles m'ont permis par bonheur de trouver ce qui me convenait
(merci aussi à Google!):
Sub Wait()
'would return a random number between 1 and 60
Dim LRandomNumber As Integer
LRandomNumber = Int((60 - 1 + 1) * Rnd + 1)
Application.Wait Time + TimeSerial(0, 0, LRandomNumber)
'Application.Wait Time + TimeSerial(0, 0, 60)
' Continues here after pause
End Sub
Merci encore je suis ravis! :-)
Cordialement,
Albert
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
u2z4XydEGHA.2380@TK2MSFTNGP12.phx.gbl...
Cordialement.
Daniel
"albert" <nomail> a écrit dans le message de news:
43bc6a1b$0$27621$636a15ce@news.free.fr...
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes
(ce
nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches
infructueuses sur google il
semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette
nouvelle
année. ;-)
Merci pour votre aide précieuse. ;-) Même si je ne suis pas arrivé à faire fonctionné vos suggestions comme je le souhaitais, elles m'ont permis par bonheur de trouver ce qui me convenait (merci aussi à Google!):
Sub Wait() 'would return a random number between 1 and 60
Dim LRandomNumber As Integer LRandomNumber = Int((60 - 1 + 1) * Rnd + 1)
Application.Wait Time + TimeSerial(0, 0, LRandomNumber)
'Application.Wait Time + TimeSerial(0, 0, 60) ' Continues here after pause
End Sub
Merci encore je suis ravis! :-) Cordialement, Albert
Cordialement. Daniel "albert" <nomail> a écrit dans le message de news: 43bc6a1b$0$27621$
Bonjour à tous,
Je souhaiterais qu'à un moment donné ma macro s'arrete quelques secondes (ce nombre de secondes étant choisis aléatoirement entre 1 et 60 secondes)
Je ne suis pas très doué en vba (!) mais après plusieurs recherches infructueuses sur google il semblerait que je doive utiliser un mélange de ces deux lignes (??) :
Application.Wait Now + TimeValue("00:00:05")
et
RANDBETWEEN(0,60)
Hélas, je n'arrive pas à imbriquer la seconde dans la première.
Merci d'avance pour toute aide et ... mes meilleurs voeux en cette nouvelle année. ;-)