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 :

[XL - 2010] Création d'un userform affichant les étapes de progression d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Par défaut [XL - 2010] Création d'un userform affichant les étapes de progression d'une macro
    Bonjour à tous,

    Je souhaiterais mettre en place un userform simple qui mette en évidence les différentes étapes de traitement de ma macro (qui prend environ 10 minutes de traitement, nécessite d'ouvrir plusieurs fichiers, de les refermer et de copier les informations d'un fichier à un autre.

    Est-ce que quelqu'un saurait m'aider ? J'imagine que je dois pouvoir placer des balises mais aucune idée de comment coder cela.

    Exemple:

    Ouverture des fichiers...
    Traitement des informations...
    Calcul des formules...
    Mise en place des TCD...

    Et qu'à chaque fois qu'une étape est accomplie, un DONE vienne se rajouter à la fin de la ligne correspondante.

    Merci beaucoup pour votre aide par avance !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,
    Avant d'utiliser un userform, tu peux utiliser la status bar de excel (la barre d'information en bas à gauche).

    Tu l'utilises comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "Macro qui tourne"
    Et une fois que tu as fini, tu rends la main à Excel avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = False]
    Sinon, tu peux juste créer un userform avec une textbox et changer sa valeur à chaque point d'étape de la macro, avec par exemple un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    userform1.textbox1.value = "Macro qui tourne"
    J'aurais quand même tendance à te conseiller la première solution, elle me semble plus élégante.

    Poulpe

  3. #3
    Expert éminent
    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
    Par défaut

    Bonjour, bonjour !

    Lire les règles du forum, en particulier le point IV-M …


    Sinon juste comprendre qu'une p'tite procédure traitée en 18 secondes est passée à 48 secondes (donc + 30 s !)
    juste en utilisant une barre de progression dans un Userform !

    Comme c'est un sujet récurrent, effectuer donc une recherche dans les discussions de ce forum
    ou ailleurs, pleins d'exemples sur le net !

    Sinon bien moins gourmand est l'affichage dans la barre d'état d'un pourcentage de progression par exemple,
    consulter l'aide VBA intégrée concernant la propriété StatusBar

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Par défaut
    @ Mr Poulpe

    Merci Mr Poulpe !

    Très utile, et rapide qui plus est !

    @ Marc-L

    C'est bien noté !

    J'avais néanmoins bien cherché, il ne s'agit pas d'une barre de progression mais d'un userform qui se mette à jour en fonction des étapes de la macro, Mr Poulpe m'a donné la réponse un peu plus tôt !

    Merci pour votre temps et vos lumières en tout cas.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Par défaut
    Re bonsoir,

    Même après avoir cherché, je ne trouve pas de solution à mon problème...

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        UserForm.Show
        Application.ScreenUpdating = False
     
        UserForm.TextBox2.SetFocus
        UserForm.TextBox2.Enabled = True
        UserForm.TextBox2.Locked = False
        UserForm.TextBox2.Text = "Essai"
    Ces commandes ne fonctionnent pas, j'ai essayé aussi avec Value à la place de .text sur la dernière ligne, rien n'y fait, mon textbox reste vide...

    Auriez-vous la solution ?

    Merci !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Je pense que le screenupdating = false empêche de voir le contenu de la textbox. Essaie peut être en le laissant activé.

    Poulpe

  7. #7
    Expert éminent
    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
    Par défaut
    Citation Envoyé par vbomars Voir le message
    Auriez-vous la solution ?
    Parfois il est nécessaire de faire suivre l'affichage ou les modifications de l'UserForm par l'instruction DoEvents

    Maintenant s'il s'agit d'un affichage par défaut, c'est bêta d'effectuer une modification par code,
    il suffit juste de le paramétrer directement dans l'UserForm !


    __________________________________________________________________________________________

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

  8. #8
    Invité
    Invité(e)
    Par défaut Bonjour,
    regarde la pièce jointe!
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Création fichier via Userform
    Par RobinN dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/04/2015, 15h59
  2. Afficher les tables et champs d'une base de données
    Par sovo dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 21/02/2008, 14h40
  3. Réponses: 4
    Dernier message: 05/12/2007, 19h06
  4. [MySQL] Afficher les 3 derniere entrer d'une base
    Par keishah dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/08/2006, 21h40
  5. [VB.NET][Réseau] afficher les PC en réseau sur une list view
    Par leptityugi dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/12/2005, 13h51

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