Appli.ScreenUdating=False ne fonctionne pas

cel92 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
 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

6 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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+
-1
cel92 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   13
 
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.
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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+
-1
cel92 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   13
 
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
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cel92 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   13
 
Bonjour,
qqn aurait-il une idée ?
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Tu peu montrer le code de la macro ?
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
EnableEvents empèche excel d'exécuter les macro d'événement de feuille.
Et tu a beau dire, une variable ne se remet pas à True toute seule....
Tu à fait le test de mon poste précédant ?
A+
-1
Liolio
 
Bonjour,
je pratique bien le VBA et ma variable Screenupdating reste à true quand je veux la passer sur false, sans aucune raison.... apparemment ca serait du à un bug, le sujet se développe de plus en plus sur le net.... peut être bientôt une réponse !

Cordialement
0
Liolio > Liolio
 
je précise, sur excel 2013, je n'avais pas le soucis avant sur mon fichier.... et même en le passant en version compatible de n'importe quelle version !
0