LUSTRUCRU
Messages postés91Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention15 mars 2013
-
27 nov. 2009 à 23:53
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)