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 Afficher une fenetre de temporisation jusqu'a ce que le code continue


Sujet :

Macros et VBA Excel

  1. #1
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut Comment Afficher une fenetre de temporisation jusqu'a ce que le code continue
    Salut,

    dansq le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '*-------------------------------------------------------------------------
    '* Converts Temp Postscript File to PDF
    '*-------------------------------------------------------------------------
    Call ConvertFile(ps_fullname, PdFFullName)
    DoEvents
    je voudrais après le call intégrer un système d'affichage pour informer l'utilisateur que le process continue et qu'il faut juste patienter.

    je voudrais aussi que cette notification disparaisse après le doevents.

    Comment puis-je faire ?

    merci d'avance.

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Tu peux afficher une petite boîte de message perso (un UserForm) avec une petit message poli et-tout-et-tout, et dont la propriété MousePointer est réglée sur 11 - frmMousePointerHourGlass.

    Il est possible aussi d'ajouter un composant ProgressBar à ton projet (Par le menu Outils / Références ou en ajoutant directement un composant à la boîte d'outils) pour peu que tu connaisses le nombre total d'itérations ou de traitements effectués. Mais attention, ce composant peut facilement ralentir l'exécution de ton code si tu y mets trop d'itérations. Vaut mieux incrémenter la Postion du ProgressBar tous les n traitements (10, 20, 50 ou plus selon la quantité de traitements effectués par ton code).

  3. #3
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Merci.

    je vais essayer.... car je ne connais rien aux Userforms

  4. #4
    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,

    Ces deux tutos pourront sans doute t'être utiles

    Utiliser les UserForm

    Utiliser les contrôles dans un UserForm
    .

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 22
    Par défaut
    Bonjour Godzestla,

    J'ai eu le même problème il y a quelques temps voici coment je l'ai résolu :
    J'ai fait un USF tout bête (Inserer / User Form) dans lequel j'ai ecris un message et que j'ai appelé Attente puis je l'ai utilisé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    'Ouverture de l'USF - a inserer au début de ta macro
     
    Attente.show
     
    'Code de la macro
     
    'Fermeture de l'USF - A inserer à la fin de ta macro
     
    Unload Attente
    Ca fonctionne très bien !!

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Merci à tous pour votre aide.

    J'y suis arrivé.

    Il y a un petit détail qui me chipote dans le fonctionnement : Le refresh de mon userform ne se fait pas vraiment bien.

    Pourtant j'utilise :
    Quand je teste mon userform il fonctionne parfaitement avec la progressbar, le nom du fichier converti, un compteur de secondes....

    Quand je lance le userform dans le code juste avant d'appeler la routine qui est longue, l'intérieur du userform ne s'affiche que brièvement avant la fermetur du userform.

    Pour info le code :
    1) 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
    17
    18
    19
    20
    21
     
    Option Explicit
     
    Private Sub UserForm_Initialize()
     
        With Me.ProgressBar1
            .Min = 0
            .Max = Duree_Gsapi_Convert
            .Value = 0
        End With
     
        Label1 = 0
        Label2 = Gsapi_Vba_pdf_name
     
    End Sub
     
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        On Error Resume Next
        Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), Procedure:="MiseAJour_UserForm_PSTOPDF", Schedule:=False
    End Sub
    2)Code du module
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    ...
    .
    .
    Call Demarrer_UserForm_PSTOPDF
    UserForm1.Show
     
    Call ConvertFile(ps_fullname, PdFFullName)
    DoEvents
    Kill ps_fullname
    Unload UserForm1
    .
    .
    ....
     
    Sub Demarrer_UserForm_PSTOPDF()
        Application.OnTime Now + TimeValue("0:0:01"), "MiseAJour_UserForm_PSTOPDF"
    End Sub
     
     
    Sub MiseAJour_UserForm_PSTOPDF()
     
        If UserForm1.ProgressBar1.Value = Duree_Gsapi_Convert Then
            UserForm1.ProgressBar1.Value = 1
            Else
            UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
            UserForm1.Label1 = UserForm1.Label1 + 1
        End If
        UserForm1.Repaint
        Call Demarrer_UserForm_PSTOPDF
    End Sub
    Quand je teste avec cette routine, tout est ok :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test_Userform1()
    Gsapi_Vba_pdf_name = "ceci est un test.pdf"
    UserForm1.Show
    Demarrer_UserForm_PSTOPDF
    End Sub
    NB : Intervertir les 2 lignes en gras ne semble rien changer.

    Dommage.

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Fring,

    je viens de tomber sur un problème dans la doc dont tu fais référence dans ton dernier post.

    Bonjour tlm,

    Ces deux tutos pourront sans doute t'être utiles

    Utiliser les UserForm
    a l'endroit
    info L'article pour ajouter et utiliser les contrôles dans un UserForm
    J'ai suivi ce systeme pour creer une Progress bar.

    Quand je reprends mon fichier ailleurs, ca calle sur le userform en disant qu'il est impossible d'afficher l'objet car il n'existe pas sur cette machine.
    Si j'active manuellement la référence à Microsoft Toolbar... , c'est trop tard, la progress bar a été supprimé de mon classeur xls.

    Shit.

    Je n'ai pas trouvé la parade alors provisoirement j'ai enlevé cette toolbar.

    (meme problème dans Excel et dans Word. Callage direct à l'ouverture)



    J'ai bien sur testé sur différentes machines et chaque fois le meme probleme.
    (office 2003).

  8. #8
    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
    Désolé mais je n'ai jamais jonglé avec le contrôle Progressbar, je ne te serai pas d'une grande aide sur ce sujet

  9. #9
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 395
    Par défaut
    Pas grave.

    C'était juste pour l'info.

    Bonne soirée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2014, 17h00
  2. Comment afficher une fenetre d'info par dessus mon index.php
    Par bigdule dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/05/2009, 23h36
  3. Réponses: 4
    Dernier message: 10/05/2006, 21h26
  4. [2.0] Comment afficher une nouvelle fenêtre ?
    Par batosai dans le forum ASP.NET
    Réponses: 12
    Dernier message: 04/05/2006, 16h41
  5. [Débutant][VE] Comment afficher une fenetre Shell (bean)
    Par antony dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 11/08/2005, 11h46

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