Appli.ScreenUdating=False ne fonctionne pas
cel92
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Liolio -
Liolio -
Bonjour,
En VBA Excel :
Je n'avais jusqu'à présent jamais eu de problème avec la commande
"Application.ScreenUpdating = False" qui cachait en arrière plan l'ouverture de nombreux fichiers par mes macros.
J'ai modifié un fichier qui fonctionnait en rajoutant une UserForm, et depuis je vois un scintillment :
malgré la commande "Application.ScreenUpdating = False" en début de macro, l'écran n'est pas gelé et l'effet est très désagréable pour l'utilisateur.
Une vérification dans la fenêtre Exécution, en plaçant un point d'arrêt quelques lignes après la commande "Application.ScreenUpdating = False", montre qu'effectivement sa valeur est à True ... Comment est-ce possible ?
Je ne pense pas que cela soit lié à mon ordi ou à mon application Excel puisque mes anciens fichiers gèlent correctement l'écran. Aurais-je modifié une configuration quelconque dans mon dernier fichier ? Est-ce lié à la UserForm (que j'ai testé en vbModeless aussi bien qu'en vbModal) ?
Merci de votre aide !
Céline
En VBA Excel :
Je n'avais jusqu'à présent jamais eu de problème avec la commande
"Application.ScreenUpdating = False" qui cachait en arrière plan l'ouverture de nombreux fichiers par mes macros.
J'ai modifié un fichier qui fonctionnait en rajoutant une UserForm, et depuis je vois un scintillment :
malgré la commande "Application.ScreenUpdating = False" en début de macro, l'écran n'est pas gelé et l'effet est très désagréable pour l'utilisateur.
Une vérification dans la fenêtre Exécution, en plaçant un point d'arrêt quelques lignes après la commande "Application.ScreenUpdating = False", montre qu'effectivement sa valeur est à True ... Comment est-ce possible ?
Je ne pense pas que cela soit lié à mon ordi ou à mon application Excel puisque mes anciens fichiers gèlent correctement l'écran. Aurais-je modifié une configuration quelconque dans mon dernier fichier ? Est-ce lié à la UserForm (que j'ai testé en vbModeless aussi bien qu'en vbModal) ?
Merci de votre aide !
Céline
A voir également:
- Application.screenupdating ne fonctionne pas
- /Gamerule domobspawning false ✓ - Forum Minecraft
- Reagentc.exe set os image false ✓ - Forum Windows 10
- Initialize atkacpi device returns false ✓ - Forum Javascript
- USB Charger + - Forum Pilotes (drivers)
- .Refresh backgroundquery:=false ✓ - Forum VB / VBA
6 réponses
Bonjour,
Juste en dessous de la ligne
Application.ScreenUpdating = False
tu ajoute
Application.EnableEvent = False
Pas oublier de la remettre à True quand Fini.
Explication probable
Dans les appels aux différente feuilles des routines événement doivent probablement être activées et sûrement que l'une d'entre-elle te remet ScreenUpdating à True
A+
Juste en dessous de la ligne
Application.ScreenUpdating = False
tu ajoute
Application.EnableEvent = False
Pas oublier de la remettre à True quand Fini.
Explication probable
Dans les appels aux différente feuilles des routines événement doivent probablement être activées et sûrement que l'une d'entre-elle te remet ScreenUpdating à True
A+
Merci, cela fonctionne, mais je ne comprends pas pourquoi :
Aucun évênement dans mon fichier excel ne contient de ScreenUpdating...
Je vais regarder attentivement les fichiers que j'ouvre ...
mais ils sont ouverts bien plus loin dans la macro et je ne comprends pas pourquoi le test de
?Application.ScreenUdating dans la fenêtre exécution montre qu'elle est à True, alors que je viens de la mettre à False.
Aucun évênement dans mon fichier excel ne contient de ScreenUpdating...
Je vais regarder attentivement les fichiers que j'ouvre ...
mais ils sont ouverts bien plus loin dans la macro et je ne comprends pas pourquoi le test de
?Application.ScreenUdating dans la fenêtre exécution montre qu'elle est à True, alors que je viens de la mettre à False.
L'appel ne se ferra pas dans une macro mais dans un événement de feuille comme
Worksheet_SelectionChange(...)
pour suivre le code, tu metle curseur sur la ligne de code juste après ton ScreenUp..
Tu tape F9 . La ligne devrait se mettre en surbrlllance Brun
Avec le curseur dans la macro tu tape F5, le code devrait s'exécuter jusque la ligne marquée
Tu ne tape plus F5 pour continuer mais F8..F8..F8.. etc. pour avancé pas à pas et tu va bien tomber sur le problème.
Mais si ça fonctionne avec Event OFF faut l'enlever pour le test.
A+
Worksheet_SelectionChange(...)
pour suivre le code, tu metle curseur sur la ligne de code juste après ton ScreenUp..
Tu tape F9 . La ligne devrait se mettre en surbrlllance Brun
Avec le curseur dans la macro tu tape F5, le code devrait s'exécuter jusque la ligne marquée
Tu ne tape plus F5 pour continuer mais F8..F8..F8.. etc. pour avancé pas à pas et tu va bien tomber sur le problème.
Mais si ça fonctionne avec Event OFF faut l'enlever pour le test.
A+
Je répète qu'aucun évênement de mon fichier n'implique le ScreenUpdating (ni True ni False).
J'ai également vérifié qu'aucun évênement des fichiers ouverts ne contient de ScreenUpdating (ni True ni False).
Je ne sais donc pas pourquoi rajouter un EnableEvents=False résoud mon problème : mystère.
Et le mystère énoncé dans ma question subsiste :
Une vérification dans la fenêtre Exécution, en plaçant un point d'arrêt la ligne suivant la commande "Application.ScreenUpdating = False", montre que sa valeur est à True ... Comment est-ce possible ?
Céline
J'ai également vérifié qu'aucun évênement des fichiers ouverts ne contient de ScreenUpdating (ni True ni False).
Je ne sais donc pas pourquoi rajouter un EnableEvents=False résoud mon problème : mystère.
Et le mystère énoncé dans ma question subsiste :
Une vérification dans la fenêtre Exécution, en plaçant un point d'arrêt la ligne suivant la commande "Application.ScreenUpdating = False", montre que sa valeur est à True ... Comment est-ce possible ?
Céline
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question