Application.ScreenUpdating

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

La sentence "Application.ScreenUpdating" permet, si je ne m'abuse, de figer l'écran.
Elle peut être utile dans une macro pour éviter qu'au cours de l'exécution de celle-ci l'écran se mette à "danser la java".
En début de macro on écrit : Application.ScreenUpdating=False
En fin de macro : Application.ScreenUpdating=True

Normalement l'utilisation d'Application.ScreenUpdating est à la hauteur de ses promesses, mais pourquoi donc mon écran continue-t-il à danser la java ?

Une explication me réconcilierait avec la java.

Merci d'avance.
 
Re : Application.ScreenUpdating

Non, il n'y a pas de sous-routines.

l'application est :

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
Dim Cellule(7) As Range

Set Cellule(1) = [AdresseAbscisses]
Set Cellule(2) = [AdresseOrdonnées]
Set Cellule(3) = [AdresseOrdonnéesEntières]
Set Cellule(4) = [AdresseOrdonnéesSup]
Set Cellule(5) = [AdresseOrdonnéesInf]

If Target.Address = [ModulationPas].Address Then
ActiveWorkbook.Names("Abscisses").Delete
ActiveWorkbook.Names("Ordonnées").Delete
ActiveWorkbook.Names("OrdonnéesEntières").Delete

Range(Cellule(1)).Name = "Abscisses"
Range(Cellule(2)).Name = "Ordonnées"
Range(Cellule(3)).Name = "OrdonnéesEntières"

[ColonneCompareOrdonnées1].ClearContents
[ColonneCompareOrdonnées2].ClearContents
Range(Cellule(4)).Copy
[FirstCellColonneCompareOrdonnées1].PasteSpecial Paste:=xlPasteValues
Range(Cellule(5)).Copy
[FirstCellColonneCompareOrdonnées2].PasteSpecial Paste:=xlPasteValues

Set Cellule(6) = [AdresseColonneCompareOrdonnées2]
Set Cellule(7) = [AdresseFirstCellColonneCompareOrdonnées2]

Range(Cellule(6)).Sort Key1:=Range(Cellule(7)), Order1:=xlAscending
End If

Application.ScreenUpdating = True
End Sub

Rien de particulier que je sache...
 
Re : Application.ScreenUpdating

Bonsoir Magic-doctor, MJ13, Jean-pierre,

Comme il s'agit d'une procédure évènementielle, il est probable que les changements faits par la macro déclenchent à nouveau la procédure qui risque de boucler sur elle-même.

Pour éviter cela, tu mets également les deux instructions suivantes:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
Application.enableEvents=false
 
.
.
Application.enableEvents=True
Application.ScreenUpdating = True
End Sub

Attention, contrairement au screenupdating, la condition EnableEvents ne se remet pas automatiquement à true. Si par exemple tu arrêtes ta macro en cours d'exécution, cette condition va rester à False et les macros évènementielles ne s'exécuteront plus.

@+

Gael
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
M
Réponses
11
Affichages
2 K
MattMons
M
Réponses
9
Affichages
1 K
M
Réponses
2
Affichages
1 K
mikaconny
M
M
Réponses
3
Affichages
1 K
MarcTer
M
Y
Réponses
1
Affichages
7 K
Y
G
Réponses
5
Affichages
1 K
E
Réponses
6
Affichages
1 K
eretyk_1er
E
Retour