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

Excel Discussion :

Barre de progression pendant boucle While


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Barre de progression pendant boucle While
    Bonjour le Forum,

    J'utilise une boucle while pour empecher l'exécution de certains lignes dans ma macro avant la création de quelques fichiers. Je souhaite afficher une barre de progression ou bien un petit cercle animé ou n'importe quel animation, avec un message "veuillez patienter", le temps de l'exécution de creation des fichiers. (le temps que le programme est bloqué dans la boucle while)

    Mon souci c'est que je connais pas le temps que la boucle while vas prendre, du coup je peux pas adopter les solutions classiques des barres de progression (rectangle dans un rectangle etc) car je connais pas le taux d’évolution des opérations (qui vont créer les fichiers necessaires pour la poursuite de la macro) pendant la boucle while.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    sans référence au nombre d'opérations, oublier la barre de progression !

    Qui plus est une barre de progression dans un UserForm ralentit énormément un processus …
    J'ai en tête une procédure avec la barre de 48 secondes et sans, elle n'en prend pas plus de 18 !

    Le mieux est de juste afficher un message fixe "Veuillez patienter …" via un UserForm non modal,
    consulter l'aide de la méthode Show ou paramétrer directement dans le VBE sa propriété ShowModal

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour Marc,
    je m'en doutais pour une barre sans référence des opérations effectuées. en attendant autres propositions, je vais faire comme t'as dis pour le moment : utiliser un Userform pour demander de patienter et puis Hide ce userform une fois la boucle est fini.

    Merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Rebonjour,

    j'ai essayé d'utiliser un userform le temps d'attente, mais j'ai pas pu fermer cet userform à la fin du temps d'attente malgré plusieurs essais
    voilà mon code :

    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
     
    'affichage du userform
    sap.Show vbModeless
     
    fichier_1 = "table_inventaire.txt"
    fichier_2 = "table_mard.txt"
    chemin = ThisWorkbook.Path & "\"
     
    'premier temps d'attente
    Set fso1 = CreateObject("scripting.filesystemobject")
    While fso1.FileExists(chemin & fichier_1) = False
    Wend
    'deuxieme temp d'attente
    Set fso2 = CreateObject("scripting.filesystemobject")
    While fso2.FileExists(chemin & fichier_2) = False
    Wend
     
    'fermeture que j'ai essayé
    sap.Hide
    Unload sap
    Help plz, c'est simple je devine mais ça me bloque :/
    Merci

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Normalement la ligne n°19 n'est pas nécessaire …

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Sans ou avec la ligne 19 ça marche pas, en-fête il attend que je ferme le userform manuellement (bouton x) pour qu'il puisse continuer l'exécution des lignes qui viennent aprés "Unload sap"

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Et l'autre solution alors ?

    Citation Envoyé par Marc-L Voir le message
    […] ou paramétrer directement dans le VBE sa propriété ShowModal

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    comme il montre le code que j'ai publié en dernier, j'ai adopté une autre solution que la barre de progression, un userform tt simplement. pour le probléme de fermeture de ce dernier c'est une question d'exécution des processus extérieurs, du coup j'ai ajouté DoEvents dans mes boucles et ça marche.
    Merci à vous tous j'attaquerais le genre de vos solutions ultérieurement quand j'aurais un niveau plus élevé en VBA

Discussions similaires

  1. afficher une barre de progression pendant une commande
    Par aaaaadrien dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 26/05/2014, 11h15
  2. Réponses: 2
    Dernier message: 24/06/2013, 23h19
  3. Réponses: 3
    Dernier message: 11/02/2010, 13h47
  4. Réponses: 2
    Dernier message: 26/08/2009, 14h44
  5. Barre de progression pendant un TRI
    Par Yurck dans le forum Delphi
    Réponses: 12
    Dernier message: 26/01/2007, 20h30

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