Application.ScreenUpdating

Le
Jaguar
Bien le bonjour à tous.
Pour accélérer le déroulement d'un long processus, j'ai introduit en =
début de macro "Application.ScreenUpdating = False".

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

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

Comment faire ? Merci pour vos idées géniales.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26347972
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
Jaguar
Le #26348042
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.
Publicité
Poster une réponse
Anonyme