ProgressBar sous vba , problème avec le controle timer

Messages postés
29
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
15 mars 2005
- - Dernière réponse : bobidav
Messages postés
2
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
28 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 ?

Voila, merci d'avance

PS : je n'en puis plus ;)
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
29
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
15 mars 2005
1
1
Merci
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.

Thomas

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 218 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
6 février 2006
0
Merci
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. ;)
Messages postés
14
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
6 février 2006
0
Merci
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. ;)
@+
Messages postés
29
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
15 mars 2005
1
0
Merci
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 ;)
Messages postés
14
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
6 février 2006
0
Merci
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
@+
Messages postés
2
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
28 mai 2011
0
Merci
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