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 :

Comment faire un message d'attente durant la mise à jour de ma macro ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut Comment faire un message d'attente durant la mise à jour de ma macro ?
    Bonjour j'ai une macro qui fonctionne très bien (mises à jour ajout de colonnes ect..), mais cependant le pb se trouve au niveau de l'affichage.

    Car pas très jolie de voir ajout de colonnes de page ect... pas très jolie à voir, J'aimerais durant cette mise à jour avoir une sorte de pop-up pour masquer les mises à jour (voir seulement la page de garde avec un petit message durant la procédure de la macro).

    Comment puis-je faire ?

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Pour masquer les actions dans la feuille à l'utilisateur il faut utiliser la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    en début de traitement, et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    à la fin. En plus, les traitements sont beaucoup plus rapide si on désactive la mise à jour de cette manière.

    Pour compléter avec un message d'information en bas de la fenêtre dans la barre de status, on peut ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "Mon message"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    merci pour l'info mais cela doit être ajouté dans le script ? j'ai besoin de plus de précision pour l'installer.

    1-/ où ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    2-/où ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    3-/où ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "Mon message"
    merci de votre aide

  4. #4
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Bonjour Debutant10, bonjour tedo01

    Je me permet de compléter ta réponse.

    Comme tu l'a surement compris le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    empêche la mise a jour de l'écran, ce qui evite le clignotement et surtout qui accelère l'exécution d'une macro de façon impressionnante.
    Il faut donc que tu mette ce petit bout de code au debut de ton script.

    Il faut également savoir que le End Sub met par defaut le Application.ScreenUpdating à True. Donc si tu n'as pas besoin de refresh ton ecran avant la fin de ton script tu n'as pas besoin de cette commande.

    Je ne connait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "Mon message"
    donc je laisse tedo01 expliquer plus en détail. Je pense cependant qu'une recherche sur l'Internet peut répondre à ta question.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    J 'ai essayé mais cela ne fonctionne pas

    Y-a-t-il un exemple simple ?

    merci pour votre aide

  6. #6
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Salut,

    Voici un code tout simple. Essaie avec le ScreenUpdating à True et essaie avec le ScreenUpdating à False. Je pense que je ne peux pas faire plus Explicit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Debutant10()
    Application.ScreenUpdating = False
    Dim k As Long
    k = 0
    For i = 1 To 50 Step 1
        For j = 1 To 100 Step 1
            Cells(i, j) = k * k
            k = k + 1
        Next
    Next
    End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2008, 17h30
  2. Comment insérer un message d'attente ?
    Par michel71 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/10/2007, 14h12
  3. [VB.NET] comment faire un message d'attente
    Par hellosct1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/09/2006, 17h43
  4. comment faire un message de type "alert" en java
    Par fracam dans le forum Composants
    Réponses: 4
    Dernier message: 05/12/2005, 17h03

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