Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Application.ScreenUpdating

2 réponses
Avatar
Jaguar
Bien le bonjour =E0 tous.
Pour acc=E9l=E9rer le d=E9roulement d'un long processus, j'ai introduit en =
d=E9but de macro "Application.ScreenUpdating =3D False".

Pour conna=EEtre automatiquement l'avancement du travail (et diminuer mon i=
mpatience !) j'ai inclus =E0 un endroit dans la macro un "Application.Scree=
nUpdating =3D False"
suivi d'un "Application.ScreenUpdating =3D True".=20

Mais il ne se passe rien, alors que si j'interromps manuellement le d=E9rou=
lement de la Macro (avec "Esc" ou avec un point d'arr=EAt) l'=E9cran se raf=
ra=EEchit et que je peux ensuite repartir avec "D=E9bogage" ou "Ctrl + Shif=
t + F8".

Comment faire ? Merci pour vos id=E9es g=E9niales.

2 réponses

Avatar
MichD
Bonjour,

Au moment opportun, utilise une boîte de message Msgbox "Fin étape1"
pour arrêter temporairement la macro.

Si tu préfères, dans la procédure générale, tu appelles cette procédure :
Call Delai(10)
'10 représente le nombre de secondes que la macro va
s'arrêter pour reprendre automatiquement ses activités après la durée prévue.

'------------------------------------------------------------
Sub Delai(T as double)
Application.ScreenUpdating = True
T = Timer + T
Do While Timer <= T
DoEvents
Loop
Application.ScreenUpdating = False
End Sub
'------------------------------------------------------------

Tu peux choisir d'afficher un message dans une cellule à différents moments
lors de l'exécution de la macro. Adapte l'adresse de la cellule.

Application.ScreenUpdating = True
Range("A1") = "Fin étape 1"
DoEvents
Application.ScreenUpdating = False
Avatar
Jaguar
Excellente idée. Je vais tester le Call Delai car la MsgBox m'oblige à doner le OK et donc à attendre devant l'ordi.
Merci à MichD

Le lundi 6 avril 2015 11:39:34 UTC+2, Jaguar a écrit :
Bien le bonjour à tous.
Pour accélérer le déroulement d'un long processus, j'ai introduit e n début de macro "Application.ScreenUpdating = False".

Pour connaître automatiquement l'avancement du travail (et diminuer mon impatience !) j'ai inclus à un endroit dans la macro un "Application.Scr eenUpdating = False"
suivi d'un "Application.ScreenUpdating = True".

Mais il ne se passe rien, alors que si j'interromps manuellement le dér oulement de la Macro (avec "Esc" ou avec un point d'arrêt) l'écran se r afraîchit et que je peux ensuite repartir avec "Débogage" ou "Ctrl + Sh ift + F8".

Comment faire ? Merci pour vos idées géniales.