Windows | Windows Server | Active directory | Exchange | SharePoint | SCCM | SCOM | Hyper-V | App-V
ACCUEIL Facebook Twitter Linked In Viadeo Flux RSS
Astuces suivantes

Astuces précédentes
Comment protéger par mot de passe un fichier Excel ?
Renommer une série de fichiers à la volée - Windows 8.1
Astuce pour travailler plus rapidement sur Windows
Mise à jour des produits Microsoft (Février 2015)
Internet: retrouver un onglet fermé par erreur


Publié le : 15/06/2011 14:07:53
Mise à jour le : 17/09/2010 14:52:07
Catégories :


Version imprimable

Auteur(s)

Office 2007 (Excel) : affichez un vrai chronomètre


Vous organisez une course et vous souhaitez afficher, sur un écran, le chronomètre de chaque coureur ? Bien entendu, l'affichage doit être mis à jour en temps réel, comme sur les panneaux géants que l'on voit dans les stades.

Niveau : confirmé
Temps : 10 minutes

Calculer le temps de chaque coureur est facile : il suffit de soustraire son heure de départ de l'heure actuelle, comme nous l'avons fait, dans la cellule C2 de l'écran ci-contre, avec la formule =MAINTENANT()-B2. Mais comment faire en sorte que cette valeur soit mise à jour en permanence ? La seule solution consiste à créer puis à lancer une macro qui « tournera » en boucle en recalculant la feuille.

– Une fois vos formules de soustraction écrites, tapez Alt + F11 pour ouvrir l'éditeur VBA et entrez le listing qui figure à la fin de ce texte. Revenez sous Excel, enregistrez votre classeur, tapez Alt + F8, sélectionnez Boucle et cliquez sur Exécuter.
– Votre macro, une fois lancée, ne s'arrêtera pas toute seule. Pour la stopper, tapez Ctrl + Pause, puis cliquez sur Fin.
– Dans le listing, n'oubliez pas l'instruction DoEvents… Elle est sans utilité pour vos chronomètres, mais elle demande à Windows de vérifier périodiquement s'il se produit des « événements » (clic de souris, frappe d'une touche, activation d'une fenêtre…). Sans ce DoEvents, votre macro serait « sourde » et consommerait presque toutes les ressources du PC : il serait donc difficile de lancer d'autres logiciels, voire de basculer vers d'autres programmes ouverts.

De manière générale, utilisez cette macro sur toute feuille de calcul dont l'affichage doit être mis à jour en temps réel, par exemple un compte à rebours.
Sub Boucle()
While True
  DoEvents
  Application.Calculate
Wend
End Sub
(Source 01 net)