Délai macro

Salut tout le monde j’ai besoin de votre aide s’il vous plaît, dans le code suivant j’aurais besoin d’effectuer un délai d’attente après l’exécution de la commande : « ActiveWorkbook.RefreshAll«

Je l’explique mieux dans mon code la commande « ActiveWorkbook.RefreshAl » nécessite un temps d’exécution de 4 à 6 sec mais le problème c’est que la macro n’attend pas la fin de l’exécution elle enchaîne le reste du code sans attendre, ce qui annule l’exécution.

J’ai essayé avec la fonction Wait en faisant une pause de 6sec mais le problème c’est que la pause stop l’exécution de la commande »ActiveWorkbook.RefreshAll«

Je vous remercie d’avance

——————

LE CODE :

——————

Sub Macro7()

'

' Macro7 Macro

'

' Touche de raccourci du clavier: Ctrl+u

'

Range("C1").Select

Application.CutCopyMode = False

Selection.Copy

Range("B2").Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveWorkbook.RefreshAll

Range("C1").Select

Selection.Delete Shift:=xlUp

End Sub

Bonjour,

Sans doute pas tout compris, car pour le code présenté, pas besoin de rafraichissement ?

A+

Si si j’ai besoin de ce rafraîchissement car il agit sur un logiciel connecté à Excel (ce rafraîchissement a des propriétés bien spécifiques il envoi une série de commande sur un logiciel ce qui justement nécessite ces 4-6 secondes)

Personne pour m’aider ?

Bonjour toutes et tous

Peut-être combiner 2 macros @ tester

' Wait pour 6 sec.

' une autre macro

Application.Wait(Now + TimeValue("00:00:06"))
Sub Macro7()
'
' Macro7 Macro
'
' Touche de raccourci du clavier: Ctrl+u
'
Range("C1").Select
Application.CutCopyMode = False
Selection.Copy
Range("B2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.RefreshAll
Call rafraichis  

End Sub
Private Sub rafraichis()
On Error Resume Next
Application.Wait(Now + TimeValue("00:00:06"))
Range("C1").Select
Selection.Delete Shift:=xlUp
End Sub

crdlt,

André

Merci pour ta réponse

En fait j’aurais voulu limiter le nombre de macro à une seule pour éviter les manipulations, car je souhaite utiliser en boucle (environ une vingtaine de fois) le code que j’ai donné ...

En gros j’aurais voulu savoir si il existe un petit bout de code simple qui permettrait de dire à la macro d’attendre la fin de l’exécution du rafraîchissement pour enchaîner le reste du code

Application.Wait(Now + TimeValue("00:00:06")) : déjà testé sans succès malheureusement

Rechercher des sujets similaires à "delai macro"