Bonjour,
Je voudrais effectuer sur Excel, à l'ouverture d'un UserForm, afficher l'heure dans un label avec Time par exemple et après simuler celle-ci de façon à ce qu'on voit que l'avancement des secondes et minutes etc et cela jusqu'à ce qu'on ferme cet UserForm. J'ai essayé de le faire avec différentes méthodes mais sans succès. Il y aurait-il quelqu'un qui pourrait m'éclairer la dessus?
Voici deux méthodes que j'ai essayé mais sans succès:
- Avec un sleep intégré dans UserForm_initialize()
Problème : le Sleep fige mon UserForm au lancement et après rien ne se passe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim i As Integer For i = 1 To 10 'ce chiffre 10 bien sur pour le test, après je l'augmenterai UserForm1.Lbl_montre.Caption = Time Sleep (1000) Next
- Avec un Timer, plus exactement un KillTimer et un SetTimer pris dans le forum :
Module_montre:
Dans l'UserForm :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) UserForm1.Lbl_montre.Caption = Time 'Debug.Print UserForm1.Lbl_montre.Caption 'UserForm1.Repaint End Sub Public Sub main() KillTimer 0, 0 SetTimer 0, 0, 500, AddressOf TimerProc End Sub
Problème : au début ça a marché quand je cliquais sur un bouton, mais je voulais qu'il marche dès l'ouverture et j'ai bidouillé mais après même en revenant aux codes initiaux ça ne marche plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub UserForm_Activate() Call TimerProc(0, 0, 0, 500) Application.ScreenUpdating = True UserForm1.Repaint End Sub
Si quelqu'un peut m'aider, ça serait gentil.
Merci
Partager