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 :

Barre de progression - macro sans boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chargée d'Etudes marketing
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée d'Etudes marketing
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut Barre de progression - macro sans boucle
    Bonjour,

    Je suis relativement nouvelle dans le monde "VBA", cela me passionne et j'apprends grâce à internet.

    J'ai créer un fichier excel pour les besoins de mon travail qui traite une bdd grâce à plusieurs macro regroupées sous la fonction call :

    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
    Sub macro_generale()
     
     
    'Désactiver calcul automatique + actualisation de l'écran
     
        Application.Calculation = xlCalculationManual
        Application.ScreenUpdating = False
     
    Call catego1
    Sheets("bdd").Select
    Call mono_multi
    Sheets("bdd").Select
    Call evolution_part_commandes
    Sheets("bdd").Select
    Call quartilev3
    Sheets("bdd").Select
    Call existing_ppt
    Sheets("bdd").Select
     
     
    'Réactiver calcul automatique + actualisation de l'écran
     
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
     
     
    End Sub

    La taille de la bdd pouvant varier en nombre ligne, le temps de traitement est fluctuant.
    J'aimerais pouvoir implanter une barre de progression lors du traitement de la bdd (de 0 à 100% si possible).
    Or je ne trouve aucune solution sur le net. Ma macro n'utilise pas de for (pas de boucle), et je ne dispose pas de la Microsoft Office Progress Bar.

    Quelqu'un peut-il me sauver ?

    Merci par avance,

    Célia

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    voir la proposition de rdurupt (pour moi et comme débutant je te conseille d'éviter cet usine à gaz : https://www.developpez.net/forums/d1...cro-s-execute/

  3. #3
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut
    bonjour,
    j'avais il y a longtemps trouver sur internet une solution empirique et "aléatoire" (l'objectif était de voir que le programme ne plantait pas).
    Un userform avec un label avec un width de 200 et une backcolor rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Activate()
        'ouvre un barre de progression
        UserForm1.Label2.Width = 0
       Call 'le programme adéquat
     
    End Sub
    Un petit sub que j'appelle à des moment précis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub barre()
    With UserForm1
    .Label2.Width = .Frame1.Width - cstdeprog 'cstdeprog étant un chiffre compris entre 0 et 200 qui en fonction de l'évolution du programme
    End With
    DoEvents
     
    End Sub

    et je plaçait dans le cour du programme global, une valeur choisie (croissante à chaque pallier) de cstdeprog de façon a faire bouger la barre
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    barre.cstdeprog = 5
    barre.barre
    Ce n'est pas rigoureux mais ça marche pour indiquer où on en est dans le programme....

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Chargée d'Etudes marketing
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée d'Etudes marketing
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut
    Merci à vous deux de votre aide et de votre réactivité !

    Je teste tout ça et vous dit si ça marche

Discussions similaires

  1. [XL-2003] Macro "Calculate" sans boucle.
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/03/2013, 15h09
  2. Réponses: 4
    Dernier message: 16/02/2012, 09h08
  3. Barre de progression dans une boucle : impossible de modifier son avancement
    Par piero-la-lune dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/01/2012, 11h24
  4. barr de progression évolution d'une macro
    Par huître dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 06/07/2011, 10h54
  5. Barre de progression d'une macro qui n'est pas dans un module
    Par Boris_Gem dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2010, 10h47

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