ProgressBar sous vba , problème avec le controle timer
energizer956956
Messages postés29Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention15 mars 2005
-
12 août 2004 à 13:40
bobidav
Messages postés2Date d'inscriptionmardi 9 novembre 2010StatutMembreDernière intervention28 mai 2011
-
24 mai 2011 à 21:13
bonjour,
alors voila j'ai créé un UserForm avec une ProgressBar et maintenant je vouvrais que le userform se lance et que la progressbar s'incrémente automatiquement une fois que j'ai cliqué sur un bouton qui est dans une feuille excel et qui fait appel a une macro.
on m'a dit qu'il falait que j'utilise un timer mais je ne trouve pas ce controle dans ma barre d'outils, peut on l'ajouter ?
energizer956956
Messages postés29Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention15 mars 20051 13 août 2004 à 08:16
Ah, alors la tu m'inéresse.
alors voila le topo en fait j'ai un bouton dans une feuille excel qui fait appel a une fonction qui s'appel Test bon je sais c'est pas très recherché comme nom, enfin bref cette fonction est stockée dans le code de la UserForm le code de cette fonction est le suivant :
Dim a
Public sub Test()
ProgressBar1.Min = 0
ProgressBar1.Max = 100
UserForm1.show
for a =0 to 100
ProgressBar1.value = a
a = a+1
Next a
End Sub
Le problème c'est que je ne vois pas à l'écran la progressbar "progresser" si je puis dire alors que ma boucle fonctionne car si je mets mon UserForm1.show après la boucle ma ProgressBar s'affiche ce coup si complétement pleine.
Mais moi ce que je veux c'est la voir se remplire petit a petit.
voilou
En espèrant avoir écrit en français compréhensible.
cs_ramg
Messages postés14Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 6 février 2006 12 août 2004 à 19:20
Le contrôle ProgressBar sous VBA est dispo quand tu cré la feuille, tu fais un clic droit sur la boîte à outils tu sélectionne Contrôles supplémentaires.
Coche Microsoft ProgressBar Control.
Il te reste plus qu'a insérer le contrôle sur la feuille.
Par contre pour l'incrémenté donne moi plus d'infos, car tu n'est pas obligé d'utiliser un Timer qui (si je ne me plante pas) ne doit pas être dispo sous VBA. Tu peut t'en sortir avec une simple boucle. ;)
cs_ramg
Messages postés14Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 6 février 2006 13 août 2004 à 17:36
J'ai essayé de reproduire ton application comme tu me l'a décris enfin je crois et effectivement ça marche pô.
Mais je pense que j'ai trouvé la solution à ton ennui. :big)
En fait ce que j'ai fais est simple. Derrière l'évenement Click du bouton qui se trouve sur ta feuille tu mets ce code là.
Private Sub CommandButton1_Click()
' Affichage de la fenêtre
UserForm1.Show
End Sub
Ensuite tu peux garder ta fonction sauf que moi je l'aurais plutôt écrite comme ça (enfin ça c'est une histoire de goût)
Public Sub Test()
Dim a
ProgressBar1.Min = 0
' Max à 100000 : c'est pour pouvoir la voir défiler
ProgressBar1.Max = 100000
For a = 0 To 100000
ProgressBar1.Value = a
DoEvents
Next
End Sub
Et enfin tu ajoute un call de ta fonction dans l'événement Activate de la UserForm comme ça
Private Sub UserForm_Activate()
Call Test
End Sub
Voilà c'est fini, j'ai testé chez moi et ça marche. J'espère avoir résolu tes problèmes. Tient-moi au courant. ;)
@+
energizer956956
Messages postés29Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention15 mars 20051 13 août 2004 à 17:47
ouais c'est ça ça marche maintenant, en fait j'ai bossé dessus de mon coté aussi et j'ai fais comme toi, le truc qui permet en fait de faire "démarrer" la progress bar quand tu affiche un UserForm c'est la fonction UserForm_Activate() d'ailleur moi je ne me suis pas fait chier j'ai fait un copier coller de ma fonction Test que j'ai coller dans UserForm_Activate, j'ai supprimer ma fonction Test et je fait appel quand je clique sur mon bouton a UserForm.Show
Merci de ton aide, a t'es un bon ramg, je ne veux rien entendre t'es un bon c'est tout ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ramg
Messages postés14Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 6 février 2006 13 août 2004 à 18:01
En fait le problème qu'il y avait avant c'est que t'essayer d'incrémenter ton ProgressBar pendant que la fenêtre était dans son évenement Initialize. Enfin je crois.
Et le coup du copier-coller ça march aussi d'ailleurs c'est mieux ça facilite la lecture du code lorsque c'est directement dans l'événement. Surtout pour la fonction là où tu ne fais pas grand chose avec.
Ravi d'avoir pû t'aider
@+
bobidav
Messages postés2Date d'inscriptionmardi 9 novembre 2010StatutMembreDernière intervention28 mai 2011 24 mai 2011 à 21:13
salue
moi je sui novice dans la programmation mes j'ai bricoler quelques codes sur un usf
je voudrai aussi inserer une progressbar sur mon userform mai je n'arrive pas
paerdonnez, y a -t-il quelqu'un qui veu bien m'aider