Bonjour,
J'ai un programme faisant appel à une série de macro. l’exécution de l'ensemble du programme met un certain temps et je souhaiterai donc mettre en place un Userform afin de montrer à l'utilisateur la bonne exécution du programme via :
- Une barre de chargement accompagné d'un % d’exécution
- Une textBox affichant au fur et à mesure la séquence du programme qui est en court d’exécution
Le programme faisant appel à tout une série de macro, difficile de précisément mesurer l'avancement au globale de celui-ci.
J'aimerai donc via un système de balises placées entre chaque macros faisant évoluer l'avancement du % d’exécution et de la barre de chargement.
J'ai essayé de creuser le sujet mais je ne suis pas très à l'aise avec l'utilisation des UseForms, c'est pourquoi je vous transmet un fichier exemple qui reprend la structure de mon programme. J'y ai créer l'userform que je souhaite utiliser.
Le code du programme principale utilisé :
J'ai indiqué dans des commentaires, la manière dont j'imagine déployer les différentes balises d’exécution du programme.
Pour information je travail sous office 365 et je suis en 64 bits. Exit donc l'ensemble des formatages en Kernel32, ils ne fonctionnent pas chez moi.
Merci d'avance pour votre aide.
Bonne fin de journée.
J'ai un programme faisant appel à une série de macro. l’exécution de l'ensemble du programme met un certain temps et je souhaiterai donc mettre en place un Userform afin de montrer à l'utilisateur la bonne exécution du programme via :
- Une barre de chargement accompagné d'un % d’exécution
- Une textBox affichant au fur et à mesure la séquence du programme qui est en court d’exécution
Le programme faisant appel à tout une série de macro, difficile de précisément mesurer l'avancement au globale de celui-ci.
J'aimerai donc via un système de balises placées entre chaque macros faisant évoluer l'avancement du % d’exécution et de la barre de chargement.
J'ai essayé de creuser le sujet mais je ne suis pas très à l'aise avec l'utilisation des UseForms, c'est pourquoi je vous transmet un fichier exemple qui reprend la structure de mon programme. J'y ai créer l'userform que je souhaite utiliser.
Le code du programme principale utilisé :
J'ai indiqué dans des commentaires, la manière dont j'imagine déployer les différentes balises d’exécution du programme.
Pour information je travail sous office 365 et je suis en 64 bits. Exit donc l'ensemble des formatages en Kernel32, ils ne fonctionnent pas chez moi.
Merci d'avance pour votre aide.
Bonne fin de journée.
VB:
Sub MainProgramm()
Dim start As Single
Dim Usf As Object
start = Timer
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
If Usf Is Nothing Then
Chargement_SITU.Show
ProgressionPrecedente = 0
End If
'% d'execution 5%
'commentaire textbox : Effacement des pages"
Call Effacer
'% d'execution 15%
'commentaire textbox : Test Boucles"
Call TestBoucles
'% d'execution 35%
'commentaire textbox : Test Boucles2"
Call TestBoucles2
'% d'execution 70%
'commentaire textbox : Test Boucles3"
Call TestBoucles3
'% d'execution 100%
'commentaire textbox : Fin du programme"
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox "durée du traitement: " & Timer - start & " secondes"
MsgBox "Fin du programme", vbInformation, Info
End Sub