Excel est un outil incontournable pour les professionnels et les particuliers qui souhaitent gérer efficacement leurs données et effectuer des calculs complexes. Parmi les nombreuses fonctionnalités avancées d’Excel, la possibilité de créer des macros et d’utiliser le langage de programmation VBA (Visual Basic for Applications) permet d’automatiser des tâches répétitives et de personnaliser l’interface utilisateur. Dans cet article, nous allons vous montrer comment mettre en place un chronomètre dans Excel en utilisant VBA, une fonctionnalité particulièrement utile pour mesurer des durées et suivre l’évolution d’un processus.

Comprendre les bases de VBA dans Excel

Avant de commencer à créer notre chronomètre, il est important de comprendre les bases de VBA dans Excel. VBA est un langage de programmation intégré à Excel qui permet d’automatiser des tâches, de créer des fonctions personnalisées et de développer des applications complexes. Pour accéder à l’éditeur VBA dans Excel, il suffit de presser les touches Alt + F11 ou de cliquer sur l’onglet « Développeur » puis sur « Visual Basic ». Une fois dans l’éditeur, vous pouvez créer un nouveau module en cliquant sur « Insérer » puis « Module ».

Déclarer les variables nécessaires au chronomètre

Pour créer notre chronomètre, nous allons avoir besoin de plusieurs variables. Tout d’abord, nous allons déclarer une variable de type « Double » pour stocker le temps de départ du chronomètre. Ensuite, nous allons créer une variable de type « Boolean » pour indiquer si le chronomètre est en cours d’exécution ou non. Enfin, nous allons utiliser une variable de type « String » pour afficher le temps écoulé dans une cellule d’Excel. Voici le code VBA pour déclarer ces variables :

  • Dim startTime As Double
  • Dim isRunning As Boolean
  • Dim elapsedTime As String
  • Créer les fonctions pour démarrer, arrêter et réinitialiser le chronomètre

    Maintenant que nous avons déclaré nos variables, nous pouvons créer les fonctions qui vont nous permettre de contrôler notre chronomètre. Nous allons avoir besoin de trois fonctions : une pour démarrer le chronomètre, une pour l’arrêter et une pour le réinitialiser. Voici le code VBA pour ces trois fonctions :

  • Sub startTimer()
  • startTime = Now
  • isRunning = True
  • End Sub
  • Sub stopTimer()
  • isRunning = False
  • End Sub
  • Sub resetTimer()
  • startTime = 0
  • isRunning = False
  • Range(« A1 »).Value = « 00:00:00 »
  • End Sub
  • La fonction « startTimer » enregistre l’heure de départ du chronomètre à l’aide de la fonction « Now » de VBA et passe la variable « isRunning » à « True ». La fonction « stopTimer » se contente de passer la variable « isRunning » à « False ». Enfin, la fonction « resetTimer » réinitialise le temps de départ à zéro, passe la variable « isRunning » à « False » et affiche « 00:00:00 » dans la cellule A1 de la feuille active.

    Afficher le temps écoulé dans une cellule d’Excel

    Pour afficher le temps écoulé dans une cellule d’Excel, nous allons créer une fonction qui sera appelée à intervalles réguliers par Excel. Cette fonction va calculer le temps écoulé depuis le démarrage du chronomètre et l’afficher dans la cellule A1 de la feuille active. Voici le code VBA pour cette fonction :

  • Sub updateTimer()
  • If isRunning Then
  • elapsedTime = Format(Now – startTime, « hh:mm:ss »)
  • Range(« A1 »).Value = elapsedTime
  • End If
  • End Sub
  • Cette fonction vérifie d’abord si le chronomètre est en cours d’exécution en testant la variable « isRunning ». Si c’est le cas, elle calcule le temps écoulé en soustrayant l’heure de départ (stockée dans la variable « startTime ») de l’heure actuelle (obtenue avec la fonction « Now »). Le résultat est ensuite formaté en utilisant la fonction « Format » pour afficher le temps au format « hh:mm:ss ». Enfin, le temps écoulé est affiché dans la cellule A1 de la feuille active.

    Créer des boutons pour contrôler le chronomètre

    Pour rendre notre chronomètre plus convivial, nous allons créer des boutons dans la feuille Excel pour démarrer, arrêter et réinitialiser le chronomètre. Pour cela, il suffit de cliquer sur l’onglet « Développeur » puis sur « Insérer » et de choisir « Bouton (contrôle de formulaire) ». Vous pouvez ensuite dessiner le bouton sur la feuille Excel et lui donner un nom. Pour associer le bouton à une macro, faites un clic droit sur le bouton, choisissez « Affecter une macro » et sélectionnez la macro correspondante (startTimer, stopTimer ou resetTimer).

    Configurer Excel pour exécuter la fonction d’actualisation à intervalles réguliers

    Pour que notre chronomètre fonctionne, il faut qu’Excel exécute la fonction « updateTimer » à intervalles réguliers. Pour cela, nous allons utiliser la fonction « Application.OnTime » de VBA. Cette fonction permet de spécifier un instant dans le futur où Excel devra exécuter une macro donnée. Voici le code VBA pour configurer Excel pour exécuter la fonction « updateTimer » toutes les secondes :

  • Sub startUpdating()
  • Application.OnTime Now + TimeValue(« 00:00:01 »), « updateTimer »
  • End Sub
  • Cette fonction utilise la fonction « Application.OnTime » pour indiquer à Excel d’exécuter la macro « updateTimer » une seconde après l’heure actuelle. Pour que le chronomètre continue de fonctionner, il faut que cette fonction soit elle-même appelée à intervalles réguliers. Pour cela, nous allons modifier la fonction « updateTimer » comme ceci :

  • Sub updateTimer()
  • If isRunning Then
  • elapsedTime = Format(Now – startTime, « hh:mm:ss »)
  • Range(« A1 »).Value = elapsedTime
  • startUpdating
  • End If
  • End Sub
  • En ajoutant l’appel à la fonction « startUpdating » à la fin de la fonction « updateTimer », on s’assure qu’Excel continuera d’exécuter la fonction « updateTimer » toutes les secondes tant que le chronomètre sera en cours d’exécution.

    Et voilà ! Vous savez maintenant comment créer un chronomètre dans Excel en utilisant VBA. N’hésitez pas à personnaliser ce code pour l’adapter à vos besoins spécifiques et à l’intégrer dans vos projets Excel. Avec un peu de pratique, vous découvrirez que VBA est un outil puissant qui vous permet d’automatiser de nombreuses tâches dans Excel et de créer des applications sophistiquées directement dans vos classeurs.