XL 2019 Problème de scintillement de l'écran avec Application.ScreenUpdating = False

pat66

XLDnaute Impliqué
Bonjour Le forum,

depuis quelques jours seulement toutes mes macros affichent un scintillement lors de leur exécution ou plus précisément la feuille reste blanche quelques millisecondes.
Je pense avoir identifié le problème puisque j'ai supprimé sur certaines macros Application.ScreenUpdating = False et il n'y plus cette feuille blanche, pourriez m'expliquer pourquoi ce phénomène alors que justement Application.ScreenUpdating = False empêche le rafraichissement de l'écran pendant l'éxécution de la macro ?

merci de m'aider à comprendre ce qui se passe

cdt
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour @pat66
A la fin de chaque macro Application.ScreenUpdating reviens à True automatiquement.
Donc si tu enchaines les macros, ça clignote.

La meilleure méthode étant de ne pas utiliser Application.ScreenUpdating en faisant un code qui ne touche aux feuilles que pour le strict nécessaire.

Cordialement
 

Efgé

XLDnaute Barbatruc
Re
Bonjour @Phil69970
Attention si Application.ScreenUpdating reviens à True automatiquement en sortie de traitement, il n'en vas pas de même pour Application.EnableEvents.
Je pense que si @pat66 rencontre des difficultés avec ScreenUpdating, il faut faire t;rès attention avec EnableEvents.
Tu as raison en ce qui concerne l'analyse du/des code(s) réel(s) qui est nécessaire.

Cordialement
 

Phil69970

XLDnaute Barbatruc
Re
@Efgé

Je suis d'accord avec toi sur la prudence à employer quand on touche aux évènements mais je suis parti du principe où justement il avait été désactivé avec une macro interrompu (de ce fichier ou d'un autre fichier ou mal faite) et je les réactive en début de macro donc sans danger pour l'utilisateur.

@Phil69970
 

pat66

XLDnaute Impliqué
bonjour le fil
et merci de votre aide, voici 2 exemples de macro concernés par ce problème sauf si je supprime Application.ScreenUpdating = False, mais alors on voit l'exécution de la macro

VB:
Private Sub CommandButton1_Click()
    ThisWorkbook.Unprotect ("aa")
    ActiveSheet.Unprotect ("aa")
    Application.CommandBars("Ply").Enabled = False
    ActiveWindow.DisplayWorkbookTabs = True
    Application.ScreenUpdating = False
    Worksheets("PARAMETRES").Visible = True
    Worksheets("principe").Visible = True
    Worksheets("D.S.I").Visible = True
    Worksheets("Postes").Visible = True
    Worksheets("ANNEXES").Visible = True
    Range("G26").Select
    ActiveSheet.Protect ("aa")
    ThisWorkbook.Protect ("aa")
End Sub

ou

Code:
Private Sub Worksheet_Activate()
 Application.ScreenUpdating = False
    ActiveSheet.Unprotect ("aa")
    Columns("AT:AT").EntireColumn.Hidden = True
    Range("A1:BZ4").Select
    ActiveWindow.Zoom = True
    ScrollArea = "A1:BZ62"
     Range("A2").Select
     Application.ScreenUpdating = True
     ActiveSheet.Protect ("aa")
 End Sub


merci
 
Dernière édition:

pat66

XLDnaute Impliqué
re,

voila comment je masque les onglets avec un double clic, il n'y que ces 3 macros sur cette feuille :

VB:
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Application.ScreenUpdating = False
    ThisWorkbook.Unprotect ("aa")
    ActiveSheet.Unprotect ("aa")
    ActiveWindow.DisplayWorkbookTabs = False
    Worksheets("PARAMETRES").Visible = xlSheetVeryHidden
    Worksheets("Principe").Visible = xlSheetVeryHidden
    Worksheets("D.S.I").Visible = xlSheetVeryHidden
    Worksheets("Postes").Visible = xlSheetVeryHidden
    Worksheets("ANNEXES").Visible = xlSheetVeryHidden
    ActiveSheet.Range("G27").Select
    ActiveSheet.Protect ("aa")
    ThisWorkbook.Protect ("aa")
End Sub
 

pat66

XLDnaute Impliqué
re,

oui bien sur Phil et j'ai analysé tout le code et vérifier que lorsque il y avait un Application.EnableEvents = false dans une macro, Application.EnableEvents =true soit présent avant le end sub
 
Dernière édition:

Discussions similaires