Bonjour le forum!
Cela fait bien longtemps que je n'ai pas eu de soucis avec mes connaissance en VBA Excel mais l'inévitable vient d'arriver...
Voulant ajouter une barre de progression du traitement d'une macro je me suis donc mis en recherche d'exemples de code sur excel downloads bien evidemment et je suis tombé sur plusieurs exemples qui m'ont plus ou moins satisfait, par soucis de portabilité d'un poste a un autre, j'aimerai donc intégrer une progressBar sans rien devoir rajouter (donc sans cocher Microsoft ProgressBar Control, version 6.0).
Je suis donc tombé sur deux exemples me semblant satisfaisant de ce coté là:
Lien supprimé
et surtout:
Excel Developer Tip: Displaying a Progress Indicator (Excel 97)
J'ai donc bien créé mon UserForm contenant un TextBox coloré que j'agrandit en largeur au fur et a mesure de l'avancement de la macro (taille max de ma progressBar: Width=100), le code donne ca:
Dans le module contenant le code principal
Code de l'UserForm1:
Voila mon soucis est que l'avancement de la barre ne s'effectue pas car l'execution se fige à la fin du premier "UserForm_Activate", j'ai bien essayer en mettant un Hide Me ou Unload Me mais l'affichage de l'UserForm devient trop rapide pour y voir une quelconque progression...que dois-je faire pour sortir du "UserForm_Activate" tout en gardant le focus sur justement mon UserForm.....
Merci par avance et bonne fin de journée
Cela fait bien longtemps que je n'ai pas eu de soucis avec mes connaissance en VBA Excel mais l'inévitable vient d'arriver...
Voulant ajouter une barre de progression du traitement d'une macro je me suis donc mis en recherche d'exemples de code sur excel downloads bien evidemment et je suis tombé sur plusieurs exemples qui m'ont plus ou moins satisfait, par soucis de portabilité d'un poste a un autre, j'aimerai donc intégrer une progressBar sans rien devoir rajouter (donc sans cocher Microsoft ProgressBar Control, version 6.0).
Je suis donc tombé sur deux exemples me semblant satisfaisant de ce coté là:
Lien supprimé
et surtout:
Excel Developer Tip: Displaying a Progress Indicator (Excel 97)
J'ai donc bien créé mon UserForm contenant un TextBox coloré que j'agrandit en largeur au fur et a mesure de l'avancement de la macro (taille max de ma progressBar: Width=100), le code donne ca:
Dans le module contenant le code principal
Code:
Public taille_progressbar As Byte
Sub main()
'declarations...
taille_progressbar = 0
UserForm1.Show
'code...boucles...
taille_progressbar = taille_progressbar + 25
UserForm1.Show
'code...boucles...
taille_progressbar = taille_progressbar + 25
UserForm1.Show
'code...boucles...
taille_progressbar = taille_progressbar + 25
UserForm1.Show
'code...boucles...
taille_progressbar = taille_progressbar + 25
UserForm1.Show
'code...
End sub
Code de l'UserForm1:
Code:
' Execution automatique de ce code apres l'appel d'un UserFormX.Show
Private Sub UserForm_Activate()
UserForm1.TextBox1.Width = taille_progressbar
DoEvents
End Sub
' Empêche la fermeture intempestive par la croix
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub
Voila mon soucis est que l'avancement de la barre ne s'effectue pas car l'execution se fige à la fin du premier "UserForm_Activate", j'ai bien essayer en mettant un Hide Me ou Unload Me mais l'affichage de l'UserForm devient trop rapide pour y voir une quelconque progression...que dois-je faire pour sortir du "UserForm_Activate" tout en gardant le focus sur justement mon UserForm.....
Merci par avance et bonne fin de journée