ProgressBar Sous EXcel avec VBA

thomasf007 Messages postés 36 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 mars 2013 - 14 déc. 2008 à 10:59
thomasf007 Messages postés 36 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 mars 2013 - 16 déc. 2008 à 21:50
Bonjour à tous,

Voilà, peut-être que quelqu'un peut m'aider...
J'ai un programme où j'ai insérer un ProgressBar à l'aide naturellement d'un Userform.
Apparement, ce Userform doit être non Modal donc, lors du chargement, j'ai tapé :
Userform1.Show vbModeless (d'après mon guide VBA). Toute fois, quand j'exécute mon programme, le Userform  s'affiche, mais est tout blanc.... Impossible de voir la bare de progression.
Quelqu'un connaît ça?

Merci d'avance.

Tom
A voir également:

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 déc. 2008 à 11:37
salut,

ce n'est pas dû au MODAL, mais le fait que ta boucle en arrière consomme toutes les ressources
ajoute DOEVENTS dans ta boucle, et si çà ne suffit pas ajoute également progressbar.refresh après avoir changé sa valeur

lien utile :

Q : [../doc/faq.aspx#vb_doevents Code : Mon application freeze lors d'une
longue opération, comment y rémedier]






++


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
thomasf007 Messages postés 36 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 mars 2013
14 déc. 2008 à 12:54
Merci de ta réponse
Maintenant, la Barre on la voit, mais elle n'avance pas...
Pourtant, mon code est de la forme :

ProgressBar.Show vbModeless
ProgressBar.ProgressBar1.value = 10
ProgressBar.ProgressBar.Refresh

(Code)

ProgressBar.ProgressBar1.value = 50
ProgressBar.ProgressBar1.Refresh

(Code)

Ect...

Est-il possible que la barre de progression soit trop lente pour mon code? Il est vrai que j'ai tenté de mettre une barre de progression pour un code qui met environs 2 à 3 seconde pour se réaliser.
Le fait que ce ne soit pas un module qui réalise ce code peut aussi jouer?

Merci de vos réponses.

ThomasF
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 déc. 2008 à 14:37
2 3  secondes, tu devrais quand même voir la progression
essaye aussi de rafraichir le userform?


ProgressBar.Show vbModeless
ProgressBar.ProgressBar1.value = 10

ProgressBar.ProgressBar1.Refresh


ProgressBar.Refresh

Doevents 'eventuellement


...






code pas en module, non çà ne doit pas jouer...


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
14 déc. 2008 à 20:27
Bonjour

As-tu aussi défini les propriétés Min et Max de l'objet ?


Exemple


ProgressBar.ProgressBar1.Min = 0
ProgressBar.ProgressBar1.Max = 100
ProgressBar.ProgressBar1.Value = 50


Amicalement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thomasf007 Messages postés 36 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 mars 2013
15 déc. 2008 à 17:00
C'est bon ça marche, en fait, j'ai rajouté DoEvents et je rafraîchissait a chaque fois que je faisais une progression de la barre.(DoEvents, je l'avais écrit qu'une seule fois...)

Merci à tous de votre aide.

ThomasF
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
15 déc. 2008 à 20:30
Bonjour Thomas

Juste une petite question sur : j'ai insérer un ProgressBar à l'aide naturellement d'un Userform

Est-ce que tu veux dire qu'un Userform a été nécessaire pour insérer le ProgressBar ?

Amicalement
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 déc. 2008 à 21:53
[../auteur/OROHENA/1483575.aspx Orohena]

-> perso je ne comprends pas ta question..., la progressbar est un contrôle graphique (visuel), il faut bien la poser... ? à moins que tu fasses simplement la différence entre la poser sur un userform ou à même le classeur...



[../auteur/THOMASF007/1401069.aspx thomasf007]

-> parfait si çà fonctionne ;), n'oublie pas de valider la ou les bonnes réponses

++


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
16 déc. 2008 à 01:46
Bonjour PCPT

>> à moins que tu fasses simplement la différence entre la poser sur un userform ou à même le classeur

Oui, c'est bien ça. En fait, je souhaitais savoir si le UserForm contenait juste le ProgressBar ou d'autres contrôles.

A cause de ma formation, antérieure au multifenêtrage, j'ai plus ou moins gardé l'habitude de mettre tous mes contrôles dans la même fenêtre. Donc si j'ai besoin d'une ProgressBar, j'ai le reflexe naturel de la mettre dans la même fenêtre que les autres contrôles et de la masquer ou la rendre visible selon les besoins. Mais l'idée de Thomas (si j'ai bien compris) c'est d'afficher un UserForm fugitif avec un ProgressBar. C'est sympa et, à la réflexion, évident. Discuter sur ce forum, ça me permet de bousculer mes habitudes, d'évoluer.

Amicalement
0
thomasf007 Messages postés 36 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 mars 2013
16 déc. 2008 à 21:50
Bonjour à tous,

En fait il y a 2 solutions (pour les deux solutions, il faut faire ça avec un Userform) :

- Insérer un ProgressBar, Lui dire le minimum et le maximum et la faire evoluer en fonction du Code. (Classique, si l'on possède le véritable Objet PROGRESSBAR)
- Créer un Label, effacer tout le texte qu'il y a, mettre une couleur de fond (bleu par exemple...) et jouer avec la fonction Width. Pour cette méthode, il a un petit calcul à faire, car Width peut ête supérieur à 100.

Amicalement,

PCPT> P.S: qu'appelles-tu valider la bonne réponse? Faut-il mettre le code sur le site?

ThomasF
0
Rejoignez-nous