OVH Cloud OVH Cloud

écrire une temporisation en vba

12 réponses
Avatar
André
Bonjour,

Dans un programme écrit en vba 2000 sous xp j'ai besoin d'une macro pour
avoir une temporisation de 40 secondes par exemple.
J'ai essayé de faire une boucle For i = 1 To 1000000 Next i, mais cela ne
convient pas et je ne connais pas d'instruction permettant de faire une
temporisation.
Je fais appel à vos compétences pour m'aider.
Merci.

2 réponses

1 2
Avatar
Jean Yves SÉVENO
Hello.

extrait de l'aide de VBA sous Excel :

Timer, fonction, exemple
Cet exemple utilise la fonction Timer pour mettre l'application sur pause.
Cet exemple utilise également la fonction DoEvents pour donner le contrôle à
d'autres processus pendant la pause.

Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Cliquez sur Oui pour effectuer une pause de 5 secondes", 4)) =
vbYes Then
PauseTime = 5 ' Définit la durée.
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + PauseTime
DoEvents ' Donne le contrôle à d'autres processus.
Loop
Finish = Timer ' Définit l'heure de fin.
TotalTime = Finish - Start ' Calcule la durée totale.
MsgBox "Pause de " & TotalTime & " seconde(s)"
Else
End
End IfEt ça marche chez moi.Cordialement.Jean Yves"X" <.> a écrit dans le
message de news: e4CCbOa%
;o) J'ai testé DoEvents, voir réponse, ça coince !!! = Timer ???


"Guy DETIENNE" a écrit dans le message de news:
O9rdGGa%
|Y a pas de chef ici ;O) Juste dire qu'un Timer n'a pas cette utilité.
| Certaines réponses peuvent induire l'utilisateur en erreur le conduisant
| vers de fausses pistes.
|
| Pour ce qui est de l'éllipse, aucune idée.
|
| Guy
|
| "X" <.> a écrit dans le message de
| news:OZPOE9Z%
| > Oui chef :o)
| >
| >
| > "Guy DETIENNE" a écrit dans le message de news:
| > OVBEU0Z%
| > | Salut ;O)
| > |
| > | Le Timer n'a pas du tout l'utilité d'une temporisation....
| > | Son utilité est d'exécuter du code à interval régulier donc à
oublier.
| > |
| > | Guy
| > |
| > |
| > | "X" <.> a écrit dans le message de
| > | news:OwFFUIZ%
| > | > Bonjour,
| > | >
| > | > Je ne sais pas si en VBa le Timer existe, si oui, il n'est pas
| > inutile
| > | > de passer par cet objet car le programme n'est de facto pas
bloqué,
| plus
| > | un
| > | > DoEvents...
| > | >
| > | >
| > | > "André" a écrit dans le message de news:
| > | > dn12bv$f0o$
| > | > | Bonjour,
| > | > |
| > | > | Dans un programme écrit en vba 2000 sous xp j'ai besoin d'une
macro
| > pour
| > | > | avoir une temporisation de 40 secondes par exemple.
| > | > | J'ai essayé de faire une boucle For i = 1 To 1000000 Next i,
mais
| cela
| > | ne
| > | > | convient pas et je ne connais pas d'instruction permettant de
faire
| > une
| > | > | temporisation.
| > | > | Je fais appel à vos compétences pour m'aider.
| > | > | Merci.
| > | > |
| > | > |
| > | >
| > | >
| > |
| > |
| >
| >
|
|




Avatar
X
Bonsoir, oui, heu... c'est avec la l'API "sleep" que ça coince :o)


"Jean Yves SÉVENO" a écrit dans le message de news:
43947429$0$19691$
| Hello.
|
| extrait de l'aide de VBA sous Excel :
|
| Timer, fonction, exemple
| Cet exemple utilise la fonction Timer pour mettre l'application sur pause.
| Cet exemple utilise également la fonction DoEvents pour donner le contrôle
à
| d'autres processus pendant la pause.
|
| Dim PauseTime, Start, Finish, TotalTime
| If (MsgBox("Cliquez sur Oui pour effectuer une pause de 5 secondes", 4)) | vbYes Then
| PauseTime = 5 ' Définit la durée.
| Start = Timer ' Définit l'heure de début.
| Do While Timer < Start + PauseTime
| DoEvents ' Donne le contrôle à d'autres processus.
| Loop
| Finish = Timer ' Définit l'heure de fin.
| TotalTime = Finish - Start ' Calcule la durée totale.
| MsgBox "Pause de " & TotalTime & " seconde(s)"
| Else
| End
| End IfEt ça marche chez moi.Cordialement.Jean Yves"X" <.> a écrit dans le
| message de news: e4CCbOa%
| > ;o) J'ai testé DoEvents, voir réponse, ça coince !!! = Timer ???
| >
| >
| > "Guy DETIENNE" a écrit dans le message de news:
| > O9rdGGa%
| > |Y a pas de chef ici ;O) Juste dire qu'un Timer n'a pas cette utilité.
| > | Certaines réponses peuvent induire l'utilisateur en erreur le
conduisant
| > | vers de fausses pistes.
| > |
| > | Pour ce qui est de l'éllipse, aucune idée.
| > |
| > | Guy
| > |
| > | "X" <.> a écrit dans le message de
| > | news:OZPOE9Z%
| > | > Oui chef :o)
| > | >
| > | >
| > | > "Guy DETIENNE" a écrit dans le message de news:
| > | > OVBEU0Z%
| > | > | Salut ;O)
| > | > |
| > | > | Le Timer n'a pas du tout l'utilité d'une temporisation....
| > | > | Son utilité est d'exécuter du code à interval régulier donc à
| > oublier.
| > | > |
| > | > | Guy
| > | > |
| > | > |
| > | > | "X" <.> a écrit dans le message de
| > | > | news:OwFFUIZ%
| > | > | > Bonjour,
| > | > | >
| > | > | > Je ne sais pas si en VBa le Timer existe, si oui, il n'est
pas
| > | > inutile
| > | > | > de passer par cet objet car le programme n'est de facto pas
| > bloqué,
| > | plus
| > | > | un
| > | > | > DoEvents...
| > | > | >
| > | > | >
| > | > | > "André" a écrit dans le message de news:
| > | > | > dn12bv$f0o$
| > | > | > | Bonjour,
| > | > | > |
| > | > | > | Dans un programme écrit en vba 2000 sous xp j'ai besoin d'une
| > macro
| > | > pour
| > | > | > | avoir une temporisation de 40 secondes par exemple.
| > | > | > | J'ai essayé de faire une boucle For i = 1 To 1000000 Next i,
| > mais
| > | cela
| > | > | ne
| > | > | > | convient pas et je ne connais pas d'instruction permettant de
| > faire
| > | > une
| > | > | > | temporisation.
| > | > | > | Je fais appel à vos compétences pour m'aider.
| > | > | > | Merci.
| > | > | > |
| > | > | > |
| > | > | >
| > | > | >
| > | > |
| > | > |
| > | >
| > | >
| > |
| > |
| >
| >
|
|
1 2