Hello tout le monde,

Je cherche à afficher une progressbar dans une boucle, en fait c'est une copie de données d'un fichier vers un autre, lors de la sauvegarde, rien de très compliqué.

J'ai donc mis ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 
...
 
 
   Application.ScreenUpdating = False
   Application.Visible = False
 
   For i = 5 To NbLignesDashbd
'       Load UserForm2
'       UserForm2.Repaint
        UserForm2.ProgressBar1.Max = NbLignesDashbd
        UserForm2.ProgressBar1.Value = i
        UserForm2.Show
 
...
 
End Sub
 
 
Private Sub UserForm_Activate()
    SleepVBA
    Unload Me
End Sub
 
 
Private Sub UserForm_Initialize()
    Me.ProgressBar1.Value = 0
End Sub
Et le code sleepVBA dans un module :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Option Explicit
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Sub SleepVBA()
    'tempo 100 ms
    Sleep 100 'pause en millisecondes
End Sub

Et j'obtiens ca :



J'ai essayé de changer la tempo jusqu'à 1 seconde en pensant qu'elle n'avait pas le temps de s'afficher mais ca ne vient pas de là non plus ....

Je pense qu'il ne me manque pas grand chose, mais je ne le trouve pas ce grand chose .... merci d'avance !!