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 :

[VBA-E]Pendant l'execution d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut [VBA-E]Pendant l'execution d'une macro
    Bonjour,

    J'ai réalisé une macro sous VBA, qui va chercher des données dans des feuilles, les copie, les colle dans d'autres feuilles, etc...
    Le processus peut être assez long et il se trouve que pendant l'exécution de la macro, celle-ci passe (rapidement) par toutes les feuilles concernées et il m'est revenu que "tout se passe comme l'ordinateur allait exploser".
    Du coup, les utilisateurs ont un peu peur de l'appli.

    Est-il possible de figer l'appli sur une feuille donnée pendant l'exécution d'une macro ? Ou est-il possible de mettre un affichage plus sympa pendant l'exécution de la macro ?

    Merci d'avance, ça me permettra d'égayer mon application

    Benoue

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui: regarde à ScreenUpdate , ou UpdateScreen, qui doit se mettre à la valeur "False".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Grillé Gaxel !

    Juste une observation en passant : Si tu copie tes données cellule par cellule (et non par plage), tu n'es pas obligé de faire un Copier/coller.
    La procédure de remplacement accélère sensiblement la macro. Si c'est le cas, tu dis, montre-nous ton code, on pourra te conseiller.

    A+

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui, j'ai vu...
    C'est exact: en terme de rapidité de traitement, je crois que c'est mieux de faire des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorkBooks(1).WorkSheets(1).Cells(1,1).Value = WorkBooks(2).WorkSheets(3).Cells(1,1).Value
    plutôt que des copier-coller.
    Maintenant, ce qui est drôle (enfin, façon de parler...), c'est que j'ai eu des utilisateurs qui préféraient voir l'écran papillotter.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par ThierryAIM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    Super merci, ça marche.
    C'est tout sobre maintenant.

    Ceci dit, c'est possible d'avoir une barre de tâche ? Comme quand on télécharge, il y'a une barre qui commence à 0% et finit à 100% avec le fin du téléchargement. On peut avoir ça ou pas ?
    Je sais,j'exagère, mais pourquoi ne pas perfectionner ?

    MErci encore

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par benoue
    Ceci dit, c'est possible d'avoir une barre de tâche ? Comme quand on télécharge, il y'a une barre qui commence à 0% et finit à 100% avec le fin du téléchargement. On peut avoir ça ou pas ?
    Je ne sais plus si il y a une progressBar dans Excel... je sais qu'à une époque, on se la créait nous-même dans un userform avec des petits carrés que l'on remplissait au fur et à mesure. Jète un oeil sur ce que te renvoie google, il y a surement un exemple.

    Sinon, tu peux utiliser la statusBar pour afficher un message. Plus pratique à mon avis, même si moins graphique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar="ton message"
    pour afficher ce que tu veux (comme un taux d'avancement pas exemple), et:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar=false
    à la fin de la macro pour redonner la main à Excel pour les messages (sinon ça reste bloqué sur le dernier que tu as affiché!)

    Citation Envoyé par benoue
    Je sais,j'exagère, mais pourquoi ne pas perfectionner ?
    L'utilisateur est roi.
    Un roi très chiant parfois, mais c'est lui qui décide!

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

Discussions similaires

  1. [VBA-E] Rafraichir le Userform pendant l'exec d'une macro
    Par amalane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/04/2020, 15h54
  2. Naviguer dans les feuilles pendant l'execution d'une macro
    Par scons dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/04/2011, 15h33
  3. bloquer les réaffichages pendant l'execution d'une macro
    Par michelp38 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/04/2011, 19h23
  4. Réponses: 3
    Dernier message: 05/01/2009, 03h43
  5. Boite à outils qui s'affiche pendant l'execution d'une macro
    Par Raadgever596 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2008, 17h20

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