Utilisation d'un Contrôle ProgressBar

Résolu
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013 - 27 nov. 2009 à 23:53
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 28 nov. 2009 à 09:10
Bonjour Bonjour, tous le monde

Je souhaite mettre en place un contrôle progressBar sur une Userform
Contexte
une macro copie ligne à ligne (1000) une feuille Excel vers un autre feuille dans un deuxième classeur Excel.
Cette macro est imbriqué dans une boucle For qui vérifie un certain nombres d'arguments et qui écrit les lignes répondant à ces arguments

For i = Ligne To Maxlg Step 1 ' boucle pour chaque ligne
'Mes données à écrire (Cde SQL)
NexT i


Quel est le type de code à utiliser pour faire fonctionner le ProgressBar, et surtout comment je l'intègre aux code existant ???
J'ai Trouvé le code suivant mais je ne vois pas comment l'utiliser

ProgressBar1.Max = 1000
ProgressBar1.Visible = true
Dim c As Range
For Each c In Range("a2:a1000")
ProgressBar1.Value = c.Row ' évolution de la progressbar
If c.Value = "" Then
   c.EntireRow.Hidden = True
End If
Next

Merci d'avance à tous ceux et celles qui prendront le temps de me répondre
JF

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 nov. 2009 à 00:46
euh ... "je ne vois pas comment l'utiliser" ?
Bah dans l'exemple (2ème code), la .Value de la ProgressBar suit la valeur du numéro de la ligne du Range. Sachant que ce Range peut aller jusqu'à la ligne 1000, le .Max de la ProgressBar a été initialiser à 1000, normal.
De ton côté, quel est l'élément, la variable, qui s'incrémente ?
C'est le 'i' : Suffit de l'écrire dans .Value (avec un DoEvents)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 nov. 2009 à 00:41
Salut
Oui, je pense que ton code est correct.
Il manque peut-être seulement un DoEvents dans ta boucle pour laisser respirer le PC afin que le système ait le temps de s'occuper du rafraichissement du graphisme = ta progressbar.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013
28 nov. 2009 à 01:06
Merci, c'est tellement simple quand c'est bien expliqué
JF
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 nov. 2009 à 09:10
C'est gentil, merci
0
Rejoignez-nous