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 :

Déroulement macro "invisible"


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut Déroulement macro "invisible"
    bonjour,
    j'ai créé une macro qui met en forme un tableau mais on voit à l'écran tout ce que fait la macro ...
    peut-on mettre une "boite de dialogue" (ce n'est peut-être pas le bon terme) qui s'afficherait au déclenchement de la macro, style "merci de patienter" avec un fond fixe et on terminerait sur une autre boite de dialogue "traitement terminé".
    Merci

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Vois dans l'aide du côté de

    ScreenUpdating
    En plus tu gagnes beaucoup de temps

    cordialement,

    Didier

    Oups, si un modérateur passe par là, ce message a sa place en vba...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    pas mal du tout cette "Application.ScreenUpdating = False"
    + un petit MsgBox à la fin, c'est tout bon

    par contre, on reste avec la boite Macro ouverte jusqu'à la fin ...

    Merci

  4. #4
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    il est important de placer le 'ScreenUpdating' au bon endroit
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MsgBox("Veuillez patienter...", "TRAITEMENT EN COURS", mbOk)
    DoEvents  ' Traite l'évènement de fermeture de la boite de dialogue
    ScreenUpdating = False  ' Rend l'affichage inactif une fois que la boite est fermée
      *
      *
      *
    ScreenUpdating = True  ' Très important

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    tu ne nous dis pas comment tu lances ta macro, mais un truc plus sophistiqué que le msgbox, mais bien plus simple qu'une barre de progression serait l'utilisation d'un Userform à afficher pendant le traitement.
    l'intérêt est que tu y loges facilement un gif (image) explicite genre "traitemetn en cours etc...

    Pour les USF, voir ici :
    http://silkyroad.developpez.com/VBA/UserForm/

    cordialement,

    Didier

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    Un message via une MsgBox ne fonctionne pas, le déroulement du processus sera arrêté tant que la MsgBox sera affichée

    Via un UserForm c'est possible mais il faut mettre sa propriété ShowModal sur False sinon même résultat qu'avec la MsgBox

Discussions similaires

  1. Résolution macro entre simples quotes
    Par Filippo dans le forum Macro
    Réponses: 8
    Dernier message: 22/04/2010, 16h07

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