Pause dans l'execution [Résolu]

Signaler
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
28 août 2007
-
Messages postés
19
Date d'inscription
lundi 1 septembre 2008
Statut
Membre
Dernière intervention
10 septembre 2008
-
Bonjour, j'aimerais savoir comment on peut mettre une pause d eX secondes dans l'execution du code VBA puis en suite le programme continue...

Genre
Sub toto()
.......
........
Wait 5 seconds
.......
......
End sub

Merci d'avance

Je viens de découvrir le bonheur de programmer et le VB me le rend bien

6 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Peut-être avec l'api : Sleep :

Dans un module ou ton formulaire :

' API pause ************************************************
 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
' **********************************************************

Utilsation :

Sleep 5000 << 5 secondes de pause

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Le sleep doit bien être dans la boucle mais le problème (je pense) viens plutot du fait que tu as le Application.ScreenUpdating = False pendant la boucle

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
28 août 2007

Ca à l'air de pouvoir marcher mais j'ai un petit pb pour l'intégrer à ma boucle for

Voila, j'ai une procédure qui me dessine des flêche entre plusieurs points à la suite
MA PROCEDURE :
Sub dessiner()
Dim i As Integer
Dim m As Variant
Application.ScreenUpdating = False


   
For i = 2 To 12

   a = Worksheets("Re_move").Cells(i, 1).Value'coordonnéeX
   b = Worksheets("Re_move").Cells(i, 2).Value 'coordonnéeY
If DépartX 0 And DépartY 0 Then
        DépartX = a
        DépartY = b
End If

        ArrivéeX = a
        ArrivéeY = b


If DépartX <> 0 And DépartY <> 0 Then
Sheets("enregistrement").Activate
'Si autorisation de tracée la flêche et si ce n'est pas le bouton de départ alors
        TracerLigneBleu ' Trace la ligne entre les deux points (départ et arrivée)
        Distance
      
'trace une flêche et calcul la distance de celle-ci
DépartX = ArrivéeX
DépartY = ArrivéeY
End If
Sleep 1000
Next i
Application.ScreenUpdating = True
 
End Sub

Et en fait j'aimerais que Sleep me permette de voir les flêches se dessiner les une après les autre
(sans sleep ca me dessine toute les flêches d'un coup)
(avec sleep, ca attend nb fléches*1s avant de me dessiner tout d'un coup)
alors que je voudrais que ca me dessine la 1ere flêche, sa attend 1s puis la 2eme
en fait faire attendre la boucle FOR

voilà @+
Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Essaye de mettre le sleep aprés la : Next i

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
28 août 2007

Merci Julien, je l'avais oublié celui là (ca c'est le fait de copier coller d'une procédure à l'autre )
 PB réglé
Merci à tous !
@+

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Messages postés
19
Date d'inscription
lundi 1 septembre 2008
Statut
Membre
Dernière intervention
10 septembre 2008

arret pendant 4ms
application.wait(Now + TimeValue("00:00:04"))

salut