Faire une pause en vba

Bonjour à tous,

J’ai un problème avec une macro que je réalise actuellement sous vba.
La voici :

Workbooks.Open "fichier1.xls"
Cells(1, 1).Select
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
ActiveWindow.Close
''''''''''
Workbooks.Open "fichier2.xls"
Cells(1, 1).Select
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
ActiveWindow.Close

Le problème est que lorsque j’execute ceci excel me dit “Cette commande va annuler une commande d’actualisation des données. Voulez vous continuer”
Ce message apparait aux lignes suivantes :
ActiveWorkbook.Save
ActiveWindow.Close
Le problème je pense c’est que lorsque je sauvegarde il acutalise encore et lorsque je ferme il sauvegarde encore.

J’ai essayé de mettre ceci :
Public Sub wait(length)
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + length
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.wait waitTime
End Sub

Avec lenght = 30 mais ça ne marche pas, or ni l’actualisation ni la sauvegarde ne met plus de 30 secondes.

Merci d’avance de votre aide.

Normalement, wait suspend toute activité pendant le temps de pause.
Tu es sûr que la sauvegarde se poursuit pendant ce temps ?

Je me posais egalement cette question. Lorsque je fait wait qu’est ce qui se passe…

J’ai essayé de mettre un do loop until i = 30 000 a la place du wait mais c’est le meme resultat.

En fait ce qui me faudrait c’est une formule qui detecte qu’une application tourne.

Le reve serait:

do
'rien
loop until autodetect.application = false

Un truc dans le genre, je sais pas si je suis tres clair

Si tu mets un loop, tu risques de te retrouver dans les mêmes conditions si tu n’as pas mis de doevents() à l’intérieur de la boucle