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 :

Message d'attente au cours d'execution de macros [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut Message d'attente au cours d'execution de macros
    Bonsoir,
    j'ai un classeur avec une trentaine de feuilles
    j'ai un ensemble de macro qui synchronisent ces feuilles (mise en page) selon le trimestre choisi.
    cette tâche nécessite presque 2 minutes.
    j'ai ajouté un message par l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar ="message d'attente"
    Pour une meilleure interface, je désire afficher un userform comportant mon message d'attente qui se fermera à la fin du temps nécessaire à la synchronisation
    j'ai essayé cela mais ça reste bloqué tant que l'userform n'est pas fermé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Sub SYNCHRO(k As Integer)
     
    USF.show
    doEvents
        Sheets("Config").Cells(5, 2).Value = k
        Sheets("c70").Cells(1, 1).Value = k
        Sheets("MDF").Cells(1, 1).Value = k
        Sheets("LDSP").Cells(1, 1).Value = k
        Sheets("DVER").Cells(1, 1).Value = k
        Form26 k
        Form20 k
        Form70
        FormMPZ Sheets("MDF"), Sheets("Config")
        FormMPZ Sheets("LDSP"), Sheets("Config")
        FormMPZ Sheets("DVER"), Sheets("Config")
        Form0102 k
    USF.hide
    End Sub
    S'il y a une variante à ma question?
    merci

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Essai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Sub SYNCHRO(k As Integer)
     
    USF.show 0 ' on rend la form non modal ce qui veut dire qu'on garde la main pendant son affichage pour faire autre chose
        Sheets("Config").Cells(5, 2).Value = k
        Sheets("c70").Cells(1, 1).Value = k
        Sheets("MDF").Cells(1, 1).Value = k
        Sheets("LDSP").Cells(1, 1).Value = k
        Sheets("DVER").Cells(1, 1).Value = k
        Form26 k
        Form20 k
        Form70
        FormMPZ Sheets("MDF"), Sheets("Config")
        FormMPZ Sheets("LDSP"), Sheets("Config")
        FormMPZ Sheets("DVER"), Sheets("Config")
        Form0102 k
    Unload USF
    End Sub
    ++
    Minick

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    A-tu essayé cet exemple
    A+
    Edit : Correction.. je dormais encore
    Bonjour Leti

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour mercatog Minick l'ami Louis le forum
    une autre possibilitee tu mets ton code dans l userform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub UserForm_Initialize()
    Repaint
     Sheets("Config").Cells(5, 2).Value = k
        Sheets("c70").Cells(1, 1).Value = k
        Sheets("MDF").Cells(1, 1).Value = k
        Sheets("LDSP").Cells(1, 1).Value = k
        Sheets("DVER").Cells(1, 1).Value = k
        Form26 k
        Form20 k
        Form70
        FormMPZ Sheets("MDF"), Sheets("Config")
        FormMPZ Sheets("LDSP"), Sheets("Config")
        FormMPZ Sheets("DVER"), Sheets("Config")
        Form0102 k
    Unload Me
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro1()
    userform1.Show
    End Sub

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Merci Laetitia, Le Forestier et Minick,
    Effectivement, en mode modal ça passe
    sauf que l'USF apparait sans le message souhaité (USF blanc quoi!)
    dans mon USF j'ai un label où j'ai écris mon message d'attente!
    Merci encore

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Beh.. le code que Laetitia te montre doit être mis dans le UF où tu a ton label avec le message d'attente !! et pas dans un autre.
    Rectification, pas mettre le code dans Initialize mais dans Activate.
    A+

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    j'ai essayé avec la proposition de Laeti,
    ma macro est paramétrée avec le k
    j'ai essayé de mettre k en variable publique!
    dans USF.show de la macro: erreur 1004!

    je tourne en rond!

    j'ai utilisé votre code (en éliminant l'image sablier animé)

    j'ai utilisé la proposition de Mnick en modale! l'USF s'affiche mais reste à blanc.
    En le lançant seul; tout est ok! (pas de problème de label ou autre)

    Edit: beh ce que j'ai fais le forestier!

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Quand tu fais tourner ta macro sans UF donc sans message d'attente, ça fonctionne ?

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    absolument fonctionnels

    séparément ils fonctionnent ( la macro et l'affichage de l'USF )
    j'ai essayé le doEvents

    j'ai essayé ta suggestion onActivate! il s'ouvre et se ferme et la macro ne marche pas
    sur initialise: error 1004

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bon alors tu remet ta macros comme c'était avant.
    Tu envoi le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    USF.Show vbModeless 'soit 0 comme dit par Minick
    Tu a probablement initialisé le label dans initialize ?
    Si oui, tu met ça dans Activate
    Mais je suis par certain que ça va aller.

    essaye déjà ça, je fais un test et si ça marche pas je revient.

    Edit : j'ai tester et ça fonctionne.
    Tu peu aussi employer mon UF sans image où sans la faire tourner tu à le choix.
    A+

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    voila ce que j'ai fais:

    macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub SYNCHRO(k As Integer)
     
    Sab.Show 0
     
        Sheets("Config").Cells(5, 2).Value = k
        Sheets("c70").Cells(1, 1).Value = k
        Sheets("MDF").Cells(1, 1).Value = k
        Sheets("LDSP").Cells(1, 1).Value = k
        Sheets("DVER").Cells(1, 1).Value = k
        Form26 k
        Form20 k
        Form70
        FormMPZ Sheets("MDF")
        FormMPZ Sheets("LDSP")
        FormMPZ Sheets("DVER")
        Form0102 k
        FormOC k
     
    Unload Sab
    End Sub
    voilà l'USF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Activate()
     
        LabSablier.Caption = Sheets("Config").Cells(30, 1).Value
     
    End Sub

    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Config").Cells(30, 1).Value
    c'est mon message! simplement parce que c'est en Russe et que dans vba j'ai déjà galéré pour ça! mais c'est déjà une autre question


    voilà l'afficahge de l'USF sans la macro et avec la macro.

    Merci

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Voilà, j'ai ajouté le DoEvents dans la place qu'il fallait et ça marche!
    Merci Le Forestier pour votre assistance

    je mettrais alors un bout de code de ta création (au moins pour l'élimination de la barre de l'USF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub SYNCHRO(k As Integer)
     
    Sab.Show 0
    doEvents 
        Sheets("Config").Cells(5, 2).Value = k
        Sheets("c70").Cells(1, 1).Value = k
        Sheets("MDF").Cells(1, 1).Value = k
        Sheets("LDSP").Cells(1, 1).Value = k
        Sheets("DVER").Cells(1, 1).Value = k
        Form26 k
        Form20 k
        Form70
        FormMPZ Sheets("MDF")
        FormMPZ Sheets("LDSP")
        FormMPZ Sheets("DVER")
        Form0102 k
        FormOC k
     
    Unload Sab
    End Sub

    par contre cette question
    c'est mon message! simplement parce que c'est en Russe et que dans vba j'ai déjà galéré pour écrire ça en dur dans le code! mais c'est déjà une autre question
    est toujours pour moi d'actualité

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Le DoEvents ne sert à rien
    Et si ça fonctionne n'oublie pas le bouton
    A+

  14. #14
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sans lui bizarrement, l'affichage ne se fait pas; a vu les miniatures??
    Merci beaucoup donc

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

Discussions similaires

  1. [XL-2003] Afficher un message d'attente pendant l'exécution d'une macro
    Par demongin dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/06/2009, 20h54
  2. Affichage d'un message d'attente pendant l'exécution d'une macro
    Par shadok6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/10/2008, 14h49
  3. Message d'attente durant execution macro
    Par Calimero06 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2008, 17h41
  4. [Javascript] message d'attente lors de l'exécution d'un long script
    Par FraktaL dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/06/2006, 16h55
  5. Réponses: 8
    Dernier message: 25/11/2005, 18h38

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