VBA - Excel . afficher un compteur

Wire Less -  
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, tous le monde.

J'ai un programme qui est asses long à s'exécuter, avec pleins de boucles qui mouline pleins de données.

Comme il est assés long, j'aurais aimé pouvoir utiliser un compteur.
J'ai cru comprendre que le mieux était d'utiliser un "userform". Ok, ça je sais faire.
Mon problème vient du ---- Application.ScreenUpdating = False ----- que j'utilise ( pour éviter de faire une crise d'épilepsie avec toutes les fenêtres qui clignotes!! )

Du coup je ne peux pas voir mon userform ce mettre à jour!

Est ce que quelqu'un à déjà rencontré ce genre de problème? Et surtout, est ce que quelqu'un à une solution ??

Merci
A voir également:

2 réponses

tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Bonjour,
Application.screenupdating ne s'applique pas aux userforms.
Pour ajouter le contrôle barre de progression, clic droit sur ds l'onglet Contrôles de la boite à outils puis contrôles supplémentaires et cocher le contrôle Microsoft ProgressBar Control x.x
Ensuite l'idée est d'incrémenter la valeur du progressbar de 1 à 100 par une boucle en fonction du pourcentage d'avancement de a macro( 'est là que ça peut être un peu délicat suivant ton code)
0
Wire Less
 
Ailles ... Pourtant mon code est super simple !!


Sub Toto
For i = 1 to 1000
Moulinette_1
Moulinette_2
...
Next
End Sub


Je dois mettre un truc du genre
Private Sub ProgressBar1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
End Sub

Quelques part? C'est ça?
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
non non, simplement en incrémentant sa valeur de 1 à 100 (où alors modifier sa propriété valeur max à 1000) ds ta procédure :
Sub Toto
For i = 1 to 1000
Moulinette_1
Moulinette_2
UserForm1.ProgressBar1 = i / 10 'en supposant que la valeur max de ProgressBar1 est définie à 100 (par défaut)
Next
End Sub 


0