IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Application.ScreenUpdating = False [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut Application.ScreenUpdating = False
    Bonjour,

    dans mes macros j'ai pris l'habitude (bonne ou mauvaise ?) de mettre au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    cependant dans mes macros un peu complexes je constate dans les enchainements des sauts d'écran, des moments d'écran blanc, ect..

    Dans un soucis de perfectionnisme (?) j'aimerai que les enchainements soient fluides avec juste l'affichage du résultat final

    Y-a-t-il d'autres solutions ?
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    La procédure où figure cette instruction appelle-t-elle d'autres procédures en son sein ?
    Car si tel est le cas et que chacune de ces procédures ainsi appelées se termine, elle, par un rétablissement de l'affichage, ma foi ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Oui mes procédures s’enchaînent, j'ai pris l'habitude de mettre au début de chaque macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    et à la fin de chaque macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    est-ce la meilleure façon de procéder ?
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    est-ce la meilleure façon de procéder ?
    Bien évidemment non, puisque tu rétablis l'affichage à la fin de chaque procédure appelée !
    C'est à toi de gérer cela :
    - soit tu ne le rétablis pas dans les procédures appelées par la procédure principale
    - soit (si dépend des cas), tu appelles ces procédures en ajoutant un paramètre optionnel booléen (true/false) et ne rétablis qu'en fonction de ce paramètre.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Pour ma part lorsque certaines procédures en appellent d'autres je code toutes les procédures et fonctions comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub xxx()
    Dim scr As Boolean
      scr = Application.ScreenUpdating
      Application.ScreenUpdating = False
      ' code
      Application.ScreenUpdating = scr
    End Sub
    Cela évite de rétablir inutilement l'affichage en fin de procédure appelée par une autre.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2010] Application.ScreenUpdating refuse de passer en "False"
    Par zepeu dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/11/2018, 16h17
  2. Application.EnableEvents = False
    Par pierre.watelet dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 10/11/2017, 17h46
  3. Utilisation de" Application.ScreenUpdating = False/True"
    Par pelerin98 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2016, 17h46
  4. [XL-2003] Application.ScreenUpdating = False Marche pas
    Par jerjou26 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/02/2012, 17h20
  5. workbook_activate >> application.visible=false
    Par kstorfou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/04/2009, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo