[VBA Excel 2k] Barre de Progression

LeDénicheur Messages postés 624 Statut Membre -  
LeDénicheur Messages postés 624 Statut Membre -
Bonjour,
J'ai un petit soucis qui se décompose en deux questions.
Mon objectif : Je compte réaliser une barre de chargement sous Excel pour indiquer à l'utilisateur une sorte de décompte. Le Décompte se ferait en seconde ou par modification de la longueur d'une barre, avec une mise à jour de l'affichage de la fenêtre, toutes les secondes. La progress barre n'est pas obliger de tenir compte de la macro,je connais le temps qu'elle met pour se réaliser donc je pourrais arrondir après.

Donc première question, est-il possible de créer une macro qui dis "Patienter encore " & valeurseconde & " secondes" dans une genre de messagebox, avec une mise à jour toutes les secondes, alors que pendant le décompte, ma macro principale se déroule et s'achève.

Deuxième question : Je sais qu'il existe des "ProgressBar", est-ce un module intégéré à VBA( que je ne possède pas apparement), où peut-on en créer une personelle ?

Merci d'avance =)
Configuration: Windows XP Internet Explorer 6.0

8 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Sur la boîte à outiles ou dans le menu Outils / Contrôles supplementaires de VBA Editor tu as le côntrole Microsoft ProgressBar Control.
    Mais tu peux programmer par toi même la barre de progression si tu veux.

    Pour la 1ère question, tant qu'on peut créer une barre de progression, c'est bien possible.

    Tu trouveras dans cette discussion des exemple
    https://www.developpez.net/forums/d56817/logiciels/microsoft-office/general-vba/creer-barre-progression-sous-vba/

    Sinon tu peux regarde ça pour t'inspirer
    3
  2. LeDénicheur Messages postés 624 Statut Membre 366
     
    Leur barre de progression fonctionne toujours en boucle, quelque soit le site où je vais...

    ===> toujours le même code d'ailleurs
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
    Cells.Clear
    Counter = 1
    RowMax = 200
    ColMax = 10
    For r = 1 To RowMax
    For c = 1 To ColMax
    Cells(r, c) = Int(Rnd * 1000)
    Counter = Counter + 1
    Next c
    PctDone = Counter / (RowMax * ColMax)
    Call UpdateProgress(PctDone)
    Next r
    Unload UserForm1
    End Sub

    Mais ce n'est pas ce que je recherches, je cherche juste à réaliser ceci :
    1 - Cliquer Bouton.
    2 - Affiche la barre de progression 10 secondes
    3 - Commence la macro.
    4 - La macro met à jour la valeur de la barre de progression à 5 secondes.
    5 - Continue et Termine la macro.
    6 - Affiche la barre de progression avec 0 secondes, "Opération terminée"

    Tu vois le schéma ?

    Sinon pour le "Controles complémentaires", je n'y es pas accès, c'est étrange bizarre, c'est le seul paramètre grisé....
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    quelque soit le site où je vais...
    T'es sûr que tu as regardé partout?! ;-))
    Voici un exemple qui pourra t'interesser
    http://sn1.chez-alice.fr/presentation/progression.htm
    0
  4. LeDénicheur Messages postés 624 Statut Membre 366
     
    C'est le premire site que j'avais trouvé =D
    La barre est pas mal mais ne fonctionne pas avec ma macro :x
    J'relis tout ça et j'te dis ça dans 2 min.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LeDénicheur Messages postés 624 Statut Membre 366
     
    C'est encore une système de boucle :x

    " Pour une boucle de 10000 cyles le temps de calcul est de 7 secondes "
    For ii = 1 To n
    Call u_progress(ii / n, "patientez,", départ, pctj, 0.1)
    Call progression("patientez", ii / n, départ, pcti, 1, 16)
    Cells(ii).Value = "trois"

    <= tout fonctionne la dessus

    J'comprends pas trop où tu veux en venir ? =)
    explicite
    0
  7. LeDénicheur Messages postés 624 Statut Membre 366
     
    J'ai réassayé avec son code, mais le soucis vient du fait que comme ce sont des boucles, lorsque je l'inclus ma macro dans le code, il execute ma macro et la termine pour ensuite finir par les mises à jour de ma barre de progression.
    0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Voici un exemple qui s'approche de ta situation, mais il utilise le contrôle
    https://codes-sources.commentcamarche.net/
    Il utilise l'objet Timer
    0
  9. LeDénicheur Messages postés 624 Statut Membre 366
     
    Je n'ai pas accès à cete fonction, le controle complémentaire est grisé :s
    0