Application.ScreenUpdating ne fonctionne pas

PatricMono

XLDnaute Nouveau
Bonjour,

J'ai un souci avec l'instruction "Application.ScreenUpdating"

J'ai une boite de dialogue.
Un bouton me permet d'executer une macro.
Et je voudrais cacher l'éxecution de cette macro.
j'ai donc mis dans la macro l'instruction "Application.ScreenUpdating = false"
Mais à l'éxécution l'instruction me renvoie le message

"Erreur de compilation"
"Membre de méthode ou de données introuvable"

J'ai déjà utilisé l'instruction ""Application.ScreenUpdating" dans d'autres macro, sans pb. Mais ici ca ne fonctionne pas. Est-ce lié à la boite de dialogue ?

Merci de votre aide
 

ROGER2327

XLDnaute Barbatruc
Re : Application.ScreenUpdating ne fonctionne pas

Bonjour et bienvenue PatricMono
C'est étonnant !
Si une procédure fonctionne, l'ajout de la ligne
Code:
[COLOR="DarkSlateGray"][B]Application.ScreenUpdating = False[/B][/COLOR]
ne devrait pas avoir la conséquence que vous mentionnez.
Pour nous permettre d'en dire plus, je crois qu'il faudrait que vous montriez l'ensemble de la procédure.​
ROGER2327
#3775


Jeudi 12 Gidouille 137 (Sainte Confiture, dévote et Sainte Cliche, donatrice, SQ)
8 Messidor An CCXVIII
2010-W25-6T06:22:02Z
 

PatricMono

XLDnaute Nouveau
Re : Application.ScreenUpdating ne fonctionne pas

Merci à tous pour vos réponses, mais entre-temps, j'ai trouvé la solution sur votre site.
J'ai ajouté le code ci-après et j'ai donc remplacé "Application.ScreenUpdating=false" par WindowUpdating (False).
Ca marche, même si je n'ai toujours pas l'explication.
Concernant la Référence invalide, proposée par l'un d'entre vous, je n'ai rien trouvé de suspect.

------------------------------< nouveau code>---------------------------
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long

sub My_Proc
' application.screenupdating= false
WindowUpdating (False) 'to freeze the screen
' Code
...
' Fin du code
WindowUpdating (True) 'to unfreeze the screen
' application.screenupdating= true
End Sub

Sub WindowUpdating(Enabled As Boolean)
' Completely Locks the Whole Application Screen Area,
' including dialogs and the mouse.
Dim Res As Long
If Enabled Then
LockWindowUpdate 0 'Unlock screen area
Else
Res = LockWindowUpdate(GetDesktopWindow) 'Lock at desktop level
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu