cs_lu6fer
Messages postés131Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention21 juillet 2005
-
17 mai 2004 à 11:25
cs_lu6fer
Messages postés131Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention21 juillet 2005
-
17 mai 2004 à 14:27
comment fait on pour supprimer le raffraichisement de l'ecrant lors de l'execution d'une macro
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 17 mai 2004 à 12:26
Re ;O)
En précisant ca devient plus facile pour celui qui lit...
Donc, en ce qui me concerne je ferais ainsi:
'----A coller dans l'ent-ête du module où ta macro est déclarée:----
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'-------------------
'Imaginons que ceci est ta macro :
Sub Macro1()
Dim Hwnd As Long
'On capture le handle de la fenêtre Excel
Hwnd = FindWindowA(vbNullString, Application.Caption)
'On empêche le rafraichissement de la fenêtre en passant le Handle de la fenêtre Excel à la fonction API LockWindowUpdate
LockWindowUpdate Hwnd
'Le code de ta macro....
'On rétabli le rafraîchissement de la fenêtre
'Ne pas oublier !!!!
LockWindowUpdate False
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 17 mai 2004 à 14:04
Bonjour,
Si l'on travaille avec Excel on peut utiliser :
Application.ScreenUpdating = False
Les cellules sont mises à jour une fois la macro terminée et empêche en outre l'affichage des différentes feuilles lorsque celles-ci sont appelées. D'où gain de temps.
Avant de quitter la macro il faut mettre : Application.ScreenUpdating = True
Ce n'est pas obligatoires car avec certaines versions le fait de quitter la macro réinitialise le ScreenUpdating à True. A voir...