salut,
je n'ai pas le courage de t'écrire la solution exact, mais je pense que tu peux uitiliser la fonction Timer en VBA, je pense que l'exemple fournit ci-dessous doit t'inspirer (trouver dans l'aide) :
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 If
au lieu de PauseTime, tu défini une variable qui représente l'heure à laquelle tu veux lancer ta macro, puis tu test dans la boucle While si tu a atteint cette heure, si c'est le cas tu appel ta macro sinon, tu boucle en n'oubliant le DoEvents qui donne le contrôle à d'autres processus si ton classeur initial à d'autres procedures à lancer en parallèle ...
bref avec tout ça, je suis sur que tu va trouver la solution à ton pb
@+
brett