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 :

[VBA-E] Rafraichir le Userform pendant l'exec d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 42
    Points
    42
    Par défaut [VBA-E] Rafraichir le Userform pendant l'exec d'une macro
    Bonjour,

    Ma question est la suivante :

    Je voudrais, pour rendre une appli Excel plus conviviale, afficher des informations sur un userform durant le déroulement d'une macro.
    Plus précisemment, ma macro analyse le contenu de fichiers textes d'un ensemble de répertoires, ça peut durer plusieures minutes, et je voudrais faire apparaitre sur le Userform la progression de cette analyse (ex 450 fichiers analysés sur 1250), cette progression augmentant tres rapidement tout de meme, je vous l'accorde.

    J'ai aucun probleme pour afficher cette progression sur le userform car il suffit de le modifier dans la boucle de la macro, mais l'affichage ne se fait pas en temps réel, au demarrage de la macro, le user form reste figé et n'affiche son contenu modifié qu'a la fin de l'execution (sauf si j'interromp la macro, alors on peut lire à quel n° de fichier on en est).

    N'y a t'il pas un moyen de forcer Excel a afficher le userform rafraichi à chaque passage de la boucle ?


    Merci d'avance,

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Essaye:
    dans la boucle.

  3. #3
    Expert confirmé
    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
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Vérifie si le userForm n'aurait pas, par hasard, une propriété Autoredraw. Si oui, mets la à True.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    rajoute un DoEvents à ta boucle... pour permettre à l'affichage de se mettre à Jour...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    Pas de propriété autoredraw (mais ya une proprieté drawbuffer que je ne connais pas)

    En revanche les fonctions repaint et doevents que vous m'avez proposées fonctionnent, merci beaucoup pour votre efficacité !

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Un petit peut être ? (le bouton en bas à gauche) pour qu'on sache que c'est résolu...

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par AlainTech Voir le message
    Essaye:
    dans la boucle.
    J'ai utilisé cette méthode (UserForm_Initialize) et ça fonctionne impeccable !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub CommandButton6_Click() 'Pour l'exemple
    Dim 
    If  Then
     
    ElseIf 
     
    Else
     
    End If
     
    UserForm_Initialize
    End Sub

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

Discussions similaires

  1. Se déplacer dans une feuille pendant le déroulement d'une macro
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/05/2008, 15h09
  2. Intercepter un clic dans un userform pendant l'exécution d'une macro
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/04/2008, 14h40
  3. [VBA]comment masquer des fichiers excel au démarrage d'une macro?
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2007, 15h33
  4. Réponses: 7
    Dernier message: 29/12/2006, 12h56
  5. [VBA-E]Pendant l'execution d'une macro
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/03/2006, 18h28

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