Bonjour à tous,
J'ai créé un Userform dans lequel j'ai ajouter une barre de progression microsoft (version 6.0)
J'ai donc un UserForm1 contenant:
- un Fram1 contenant lui-même:
- un Label1 (pour afficher le traitement en cours)
- une ProgressBar1
Dans le code de mon Userform1 j'ai ceci:
[ccp]Private Sub UserForm_Initialize()
With Me.ProgressBar1
.Min = 0
.Max = 41
.Value = 0
End With
End Sub[/cpp]
Au debut de ma macro j'affiche ma UserForm avec
A chaque étape de ma macro j'ajoute avant:
Code :
- UserForm1.Label1 = "Mon Etape"
|
et à la fin de l'étape
Code :
- UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
|
Mais ma fenêtre de bougeait pas et restait au début (avec "Label1" au lieu de "Mon Etape" ).
J'ai donc utilisé:
pas d'effet,
j'ai mis ce dernier code entre :
Code :
- Application.ScreenUpdating = True
- UserForm.Repaint
- Application.ScreenUpdating = False
|
Sans effet
Tout ce que je peux faire c'est prendre ma UserForm avec ma souris et la bouger pour m'amuser a la dupliquer partout
A part ça lorsque je clic sur le coin superieur droit pour fermer mon UserForm, ma macro s'execute (je ne sais pas si je ferme la UserForm pendant le traitement ou alors si Excel attend que je ferme la UserForm pour executer la macro.
C'est quoi l'astuce ????
un petit bout de mon code pour ceux qui demanderaient :
Code :
- UserForm1.Show
- ' Remplacement des points par des virgules
- UserForm1.Label1 = "Remplacement des points par des virgules - Etape longue"
- UserForm1.Repaint
- Range("A:K,M:N,P:AH,AJ:AZ" ).Select
- Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
- :=xlByColumns, MatchCase:=False
- UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
- UserForm1.Repaint
|
Message édité par GohanSSj2 le 03-05-2010 à 13:53:21