Appli.ScreenUdating=False ne fonctionne pas

cel92 Messages postés 28 Statut Membre -  
 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
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. cel92 Messages postés 28 Statut Membre 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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  4. cel92 Messages postés 28 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cel92 Messages postés 28 Statut Membre 13
     
    Bonjour,
    qqn aurait-il une idée ?
    -1
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Tu peu montrer le code de la macro ?
      -1
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    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
      1. 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