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 pour Call macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Par défaut Barre de progression pour Call macro
    Bonjour !

    Depuis pas mal de temps je cherche à faire une barre de progression standard pour occuper un utilisateur lors de la realisation d'un ensemble de macros.

    J'ai regroupé ces macros (macro1, macro2, macro... etc il y en a 14 en tout) au sein d'une macro globale qui utilize call pour chaque procedure.
    Ces macro (avec boucles) s'appliquent sur une feuille don't le contenu en colonne est fixe mais le nombre de ligne peut varier, on ne sait donc pas determiner fixement le temps nécessaire ou le nombre de changements à faire

    J'ai essayé pacman avec plus ou moins de success (elle disparait en cours de route)

    Auriez-vous une piste là je sèche et je dois presenter lke tout mercredi (

    HELLLPPP please

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Sans autres précisions sur le déroulement de chaque macro procédure ainsi appelée, je ne peux que proposer un avancement le la progressbar par procédure appelée !
    et je dois presenter lke tout mercredi
    cette préoccupation est la tienne seule et ne nous intéresse point. Il n'y a ici aucune "urgence", ni aucune "priorité". Uniquement des difficultés exposées et des solutions proposées, sans qu'aucun "délai" ne constitue quelque "facteur" que ce soit de quoi que ce soit.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 7
    Par défaut
    Bonjour,

    Piste de solution :

    Tu peux par exemple utiliser un Userform et y placer une ProgressBar, et changer la valeur après tous tes Call.
    De ce fait, la barre de progression s'actualisera après chaque phase de ton programme.

    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
     
    public sub barredeprogression()
     
    UserForm1.ProgressBar1.max = 1000        'valeur max de la progress bar
     
    Call toto1                                          'appel de ta macro
    UserForm1.ProgressBar1.Value = 400        'mise a jour de la barre de progression
    UserForm1.Label1.Caption = Application.WorksheetFunction.RoundUp(((100 * UserForm1.ProgressBar1.Value) / UserForm1.ProgressBar1.max), 1) & "%"
    'affiche le pourcentage dans un Label1 que tu places dans le userform
    userform1.repaint                                'rafraichissement userform
     
    Call toto2                                                  'même procédure
    Userform1.ProgressBar1.Value = 800
    UserForm1.Label1.Caption = Application.WorksheetFunction.RoundUp(((100 * UserForm1.ProgressBar1.Value) / UserForm1.ProgressBar1.max), 1) & "%"
    Userform1.repaint
     
    Call toto3                                                  'appel dernière sous macro
    Userform1.ProgressBar1.Value = 1000        'arrivée au max
    UserForm1.Label1.Caption = Application.WorksheetFunction.RoundUp(((100 * UserForm1.ProgressBar1.Value) / UserForm1.ProgressBar1.max), 1) & "%"
    Userform1.hide                               'Fermeture du Userform
     
    end sub
    Macro à bien sûr réadapter selon ton besoin, l'avantage est que même avec un fichier excel à nombre de lignes variable, cette solution fonctionnera.

    Amicalement,
    daBz

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu peux aussi tout simplement utiliser la barre d'état (sous les feuilles), un petit exemple à attacher à un bouton formulaire :
    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
    32
    33
     
    Sub Test()
     
        Dim I As Long
        Dim J As Integer
        Dim Max As Long
        Dim Etat As Boolean
     
        Max = 100000
     
        With Application
     
            Etat = .DisplayStatusBar
     
            .DisplayStatusBar = True
     
            For I = 1 To Max
     
                .StatusBar = "Veuillez patienter, traitement en cours, progression : " & CInt((I / Max) * 100) & "%"
     
                For J = 1 To 10
                    DoEvents
                Next J
     
            Next I
     
            .StatusBar = False
     
            .DisplayStatusBar = Etat
     
        End With
     
    End Sub

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Par défaut
    Bonjour à tous

    désolé pour ce long silence j'étais sur les routes ^^
    Merci de ces éléments je vais les testés tous.

    Désolé de l'accroche qui 'avait pas lieu d'être formulé ainsi

    Je vous tiens au courant de mes avancées

  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
    Bonjour,

    et ne pas oublier de comparer le temps d'exécution de ton code avec barre de progression puis sans cette barre ! …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. [AJAX] Barre de progression pour un upload ftp
    Par hicham285 dans le forum AJAX
    Réponses: 3
    Dernier message: 15/06/2011, 09h25
  2. Réponses: 1
    Dernier message: 30/07/2008, 12h07
  3. [Upload] Barre de progression pour upload volumineux
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 05/09/2007, 21h05
  4. [FLASH MX2004] Barre de progression pour ma vidéo.
    Par Justin_C dans le forum Flash
    Réponses: 7
    Dernier message: 28/11/2006, 17h31
  5. barre de progression pour fichier en telechargement
    Par Tierisa dans le forum Access
    Réponses: 6
    Dernier message: 07/04/2006, 14h49

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