Progress bar pendant l'exécution d'un code [Résolu]

Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 2 juin 2005 à 14:04 - Dernière réponse : Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention
- 3 juin 2005 à 13:20
bonjour,

je sais que les progress bar on en parle sur le forum, mais le problème c'est que c'est sous VB6 et moi je suis sur VB Editor (je fais un logiciel pour traiter des feuilles excel).

donc ma question est simple: comment faire une progress bar qui progresse pendant que mon code (exécuté à partir d'un form) s'exécute.

parce que là apparemment, j'ai pas de gens qui faisaient ca sous VB Editor....

merci de votre aide.
Daydayerement Vôtre
Afficher la suite 

11 réponses

Meilleure réponse
Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 3 juin 2005 à 13:20
3
Merci
ca marche!

mais le refresh marche qu'en VB6 et moi je suis en VB editor. la slution c'est de remplacer progression.refresh par doevents...
voila!

en tout cas merci beaucoup, tu m'as vraiment bien aidée.

@+

Daydayerement Vôtre

Merci Daydayer 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

juju740 10 Messages postés mercredi 26 mars 2003Date d'inscription 3 juin 2005 Dernière intervention - 2 juin 2005 à 14:06
0
Merci
il existe un contrôle progressBar même sour visual editor.
l'uitlisation est la même que sous vb6
opsi1985 15 Messages postés jeudi 26 mai 2005Date d'inscription 29 septembre 2007 Dernière intervention - 2 juin 2005 à 15:10
0
Merci
Salut, il faut savoir si ton programme execute des boucles du genre



for i = 0 to 1000

.......

.......

.......

next



si c'est ca voici un bout de code que j'ai fait :

pourcentagre = (i + 1) * 100 / nb_user_select


B = Int(2.55 * p)


w = Int(104 * p) '50 est la largeur de la barre à 100%




'Progression.Width = W


Progression.BackColor = RGB(255 - B, B, 0)


Progression.Caption = p & "%"


Progression.Refresh



moi dans mon cas je faisait un travail sur des utilisateurs, chq
utilisateur represente un passage, donc toi se sera une formule du
genre "pourcentage =(i+1)*100/nb_de_passage_dans_la_boucle mais en
faite il faut te débrouiller pour que tu es à la fin un pourcentage ...

B sert à la couleur

W la taille

et Progression label blanc avec le border style1



voila tu place ceci avant ton next ou ton wend si tu es dans un While .... wend.



Si ton prog est une succesion de programme tu retape le bout de code à la fin d'une commande...



Voila j'espere ne pas t' avoir trop embrouillé,.

N'hésite pas si tu veux d'autre explication

++
Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 2 juin 2005 à 15:30
0
Merci
merci de ta réponse opsi! en plus c'est assez bien expliqué!


bon j'ai qq tites questions sur le bout de code que tu m'as filé qd mm.

1)la var 'pourcentage', tu t'en sers où dans le code pour ta pbar?
2) dans 'B = Int(2.55 * p)', à quoi sert la variable 'p'? et de quel type?


3)ma progress bar, je voudrais qu'elle apparaisse autre que sur le form à partir duquel je lance le code de recherche.... genre j'ai un form ou l'utilisateur rentre ce qu'il veut que je cherche sur la feuill excel, il clique sur 'search' et le form de saisie disparait pour faire place a la pbar.à ton avis, faut que je transfere le code de recherche sur le form contenant la pbar? et sur le form de saisie, qqd je clique search je fais apparaitre le form... je pense que c'est ca...

merci.

Daydayerement Vôtre
opsi1985 15 Messages postés jeudi 26 mai 2005Date d'inscription 29 septembre 2007 Dernière intervention - 2 juin 2005 à 16:23
0
Merci
Ah ca me fait plaisir que tu trouves ça pas trop pourris !!!



Effectivement tu as raison j'ai fait une gourde dans le code quand j'ai
renommer les variables pour que cela soit plus explicite !!!!





Voici la réctification --> :



pourcentagre = (i + 1) * 100 / nb_user_select


B = Int(2.55 * pourcentage)


w = Int(104 * pourcentage) '50 est la largeur de la barre à 100%




'Progression.Width = W


Progression.BackColor = RGB(255 - B, B, 0)


Progression.Caption = pourcentage & "%"


Progression.Refresh



Voila !!!

ca devrait t'éclaire sur la fameuse variable p qui n'ait autre que pourcentage !!!



ensuite je t'explique ce que B = Int(2.55 * pourcentage) veut dire :

en faite les couleurs sont composé de 3 couleurs Rouge, jaune , bleue, et chaqune en 8 bit soit 255,

bref en faisant ceci B = Int(2.55 * pourcentage) tu as un B qui
varie de 0 à 255 si ta variable pourcentage est vraiement un
pourcentage allant de 0 à 100 !!



Donc ceci : Progression.BackColor RGB(255 - B, B, 0) te fais passer ta barre de rouge à vert !!!)



Sinon pour que ce soit ta barre dans une autre form qui change, je
laisserait le code dans ta form de recherche, je créerais une autre
form qui s'appelerait pbar par exemple et je ferais :




pbar.Progression.BackColor =
RGB(255 - B, B, 0)


pbar.Progression.Caption = pourcentage & "%"


pbar.Progression.Refresh

Apres c'est a toi de voir. Chacun ces méthodes ....



Tu peux ajouter aussi ceci : Progression.Width = W

qui permettrait de faire agrandir ta barre au fur et à mesure que ca avance mais moi je trouvais ca pas tres joli !!



Voila je m'arrete la, Promis



A++
Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 2 juin 2005 à 16:36
0
Merci
j'ai essayé ton code, le pb c'est que Refresh ne s'applique pas à 'progression', qui est un label...

je fais comment?

Daydayerement Vôtre
Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 2 juin 2005 à 16:43
0
Merci
et autre chose: si tu mets cela après le next, on ne peut pas voir, au fur et à mesure des i qui avance dans la boucle, le changement de la progress bar... non?

Daydayerement Vôtre
opsi1985 15 Messages postés jeudi 26 mai 2005Date d'inscription 29 septembre 2007 Dernière intervention - 2 juin 2005 à 17:12
0
Merci
Vi faut mettre le code juste avant le next et pas apres sinon ton i ne varie pas et ta barre non plus !!!

Sinon je suis sur que label a une propriété refresh !! je viens de vérifier

++
Daydayer 201 Messages postés mercredi 1 décembre 2004Date d'inscription 13 août 2005 Dernière intervention - 3 juin 2005 à 09:30
0
Merci
rebonjour! c'est encore moi!

bon alors, reprenons les choses dans l'ordre, parce que moi ça marche pas....

bon alors j'ai comme code avec mes variables:
pourcentage = (Row + 1) * 100 / SearchLimit
B = Int(2.55 * pourcentage)
w = Int(104 * pourcentage) '50 est la largeur de la barre à 100%


'Progression.Width = W
Progression.BackColor = RGB(255 - B, B, 0)
Progression.Caption = pourcentage & "%"
Progression.Refresh

d'abord sur le type de tes var: pourcentage c'est un int?
et progression c'est bien un label donc (un truc que tu insères normalement pour donner des titres juste avant une textbox par exemple...).
parce que où tu vois que le label a une propriété refresh? ou alors il me manque une bibliothèque dans mes references...

évidemment je suis sure que ce code marche, vu que tu l'as testé, mais moi non, donc il doit me manquer qqch...je sais pas. parce que qd j'exécute le code, je me retrouve avec une erreur du style 'membres de mthode ou de données introuvable', avec '.Refresh' ssurligné en bleu...

à l'aideueueueueueu!

Daydayerement Vôtre
opsi1985 15 Messages postés jeudi 26 mai 2005Date d'inscription 29 septembre 2007 Dernière intervention - 3 juin 2005 à 10:55
0
Merci
resalut,

Alors pourcentage, moi je l'ai mis en int, car comme ca lorsque je le fait afficher il me met un nombre rond, mais tu peux le mettre en long si tu veux... , mais tu aura des vielles virgules !!
et progressions c'est bien un label comme tu le décrit, ce que je change juste c'est le border style que je met a 1( fixed single je crois ...).
Vérifie bien que ton B ne dépasse pas 255 sinon ca pourrait faire une erreur... sinon je vais te montrer que label a bien une method refresh .. :
opsi1985 15 Messages postés jeudi 26 mai 2005Date d'inscription 29 septembre 2007 Dernière intervention - 3 juin 2005 à 10:56
0
Merci
Voila, .... mais bon c'est bizarre que ca ne marche pas chez toi car y a vraiement pas grand chose comme code ^^
n'hesite pas a reposter =) même si ca marche !!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.