Microsoft 365 Problème avec l'affichage de l'heure dans Label de Userform

  • Initiateur de la discussion Initiateur de la discussion ChTi160
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ChTi160

XLDnaute Barbatruc
Bonjour ,
Dans un Module standard , j’ai ceux-ci :
VB:
Option Explicit
' Déclaration des API Windows
Private Declare PtrSafe Function SetTimer Lib "user32" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
Private Declare PtrSafe Function KillTimer Lib "user32" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As LongPtr
' Identifiant du Timer
Private Const TIMER_ID As Long = 1
' Démarrer le Timer quand le UserForm s'ouvre
Public Sub StartTimer()
    SetTimer 0, TIMER_ID, 1000, AddressOf UpdateTime
End Sub
' Arrêter le Timer pour éviter les erreurs quand on ferme le UserForm
Public Sub StopTimer()
    KillTimer 0, TIMER_ID
End Sub
' Fonction appelée par SetTimer toutes les secondes (doit être dans un Module)
Public Sub UpdateTime(ByVal hwnd As LongPtr, ByVal uMsg As Long, ByVal idEvent As LongPtr, ByVal dwTime As Long)
    ' Mettre à jour l'heure sur le UserForm
   With UsF_Gestion
           .LBl_Time.Caption = Format(Now, "HH:MM:SS")
   End With
End Sub
J’ai mis dans le Initialize de Mon Userform
Puis pour arrêter la mise a jour de l’heure dans le Userform_Terminate
À l’ouverture du Userform pas de problème .
Mon problème est le suivant Lorsque je ferme le Userform ,il met ensuite impossible dansVBE de l’afficher , comme si le initialize se déclenchait !
Avez-vous ou une autre méthode qui permette l'affichage de l'heure en évitant le saut du pointeur de la souris lors de la mise a jour de l’heure !
ou alors la solution à mon problème !
Merci par avance
Jean marie
 
Re
dysorthographie , j'ai donc adapté ta proposition a mon Projet et cela fonctionne !
Merci encore de ta participation à la résolution de mon Problème ainsi qu'a wDog66 .
Bonne fin de Soirée
Jean marie
Ps :
une question
pourquoi , T.Interval = 1500 , quelles peuvent être les valeurs utilisées sans compromettre le résultat ?
 
Bonsoir.
J'utilise un objet Rythmeur pour ce genre de besoin.
Il serait sûrement plus fiable, parce qu'il passe par un évènement. L'UserForm ne fait que le prendre en charge ou non, selon qu'il est là ou n'est plus là !
C'est vrai que j'aurais plutôt mis le démarrage dans UserForm_Activate et l'arrêt dans UserForm_QueryClose
Avec ma solution, dans l'UserForm_Initialize il doit juste y avoir l'attribution d'un nouvel exemplaire de Rythmeur à la variable Private WithEvents.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
46
Affichages
2 K
Réponses
7
Affichages
526
Retour