L'heure en temps réel dans une feuille excel

Description

Petit bout de code expliquant comment utiliser une API en VBA pour afficher seconde après seconde l'heure en temps réel dans une cellule d'une feuille Excel...

Source / Exemple :


'Dans la partie workbook du classeur, insérer le code suivant
'============================================================

'On initialise le timer système dès l'ouverture du classeur
Private Sub Workbook_Open()
'Utilisation de l'API SetTimer toutes les secondes (1000 millisecondes) pour appeler la procédure UpDateTime
SetTimer Application.hWnd, 0, 1000, AddressOf UpDateTime
End Sub

'A la fermeture du classeur, on nettoie la place en supprimant l'appel au timer système
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'On utilise le handle de l'application et l'ID de l'objet liés lors de l'initialisation du timer
KillTimer Application.hWnd, 0
End Sub

'Dans un module séparé, insérer le code suivant
'==============================================

'On définit les 2 APIs systèmes qui seront utilisées 
Public Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

'La fameuse fonction UpDateTime qui va se charger d'écrire dans la cellule voulue l'heure actuelle à chaque seconde
Public Sub UpDateTime (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
'Afin que la feuille ne se ferme pas de manière inoportune suite à une erreur interne
'(lors de l'édition d'une cellule ou l'accès à certaines boîtes de dialogue par exemple)
On Error Resume Next
'On écrit l'heure selon le format HH:MM:SS sur 24 heures.
Worksheets(1).Cells(1.1).Value = Format(Time,"HH:MM:SS")
On Error Goto 0
End Sub

Conclusion :


C'est tout et très simpliste (je n'ai pas dis "simple"), j'espère que ça vous aidera...

Comme défaut connu, on peut constater que lors de l'édition d'une cellule,
l'heure est figée jusqu'à annulation ou validation de l'édition.

J'ai mis le code sur initié même s'il me semble simple à comprendre et très court car on appelle des APIs qui provoquent facilement un plantage de la feuille et sa fermeture immédiate. N'oubliez pas de sauver votre travail régulièrement si vous expérimentez...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.