Enregistrer une macro VBA, exemple avec un minuteur




Il est possible d'automatiser des tâches dans Excel, par exemple, lors d'un clic sur un bouton. On va utiliser l'enregistreur de macro dans Excel pour simuler un minuteur.

Ce type d'automatisation s'appelle de la programmation, le langage utilisé dans Excel pour programmer est le VBA (Visual Basic for Application). Nous allons donc utiliser un outil qui nous permet de traduire nos actions dans Excel en code VBA.

Sommaire

← Retour à la liste des tutos


Liste des étapes du tuto

  1. Pour créer notre minuteur, on va utiliser la formule =MAINTENANT() en "A2". Un tuto sur cette formule si besoin: Top 10 des formules les plus utiles
  2. Cette formule affiche uniquement la date du jour, l'heure et les minutes par défaut. Nous avons besoin d'afficher les secondes pour notre minuteur. On va donc modifier le format de "A2" et appliquer ce format personnalisé: jj/mm/aaaa hh:mm:ss
  3. En "A3:B3" on mettra les informations de démarrage du minuteur également au format jj/mm/aaaa hh:mm:ss.
  4. En "A4:B4" on mettra les informations de fin du minuteur également au format jj/mm/aaaa hh:mm:ss.
  5. En "A5:B5" on mettra le calcul de la durée écoulée, sans date, au format hh:mm:ss.
  6. Créer 2 boutons qui contiendront nos macros VBA:
    1. un bouton de démarrage du minuteur
    2. un bouton d'arrêt du minuteur
  7. Enfin on enregistrera les 2 macros VBA que l'on pourra affecter aux boutons.



Préparation



Pour faire le fichier soi-même, voici les étapes à reproduire:

  1. Copier puis coller les données en "A1"
  2. Appliquer les changements de formats dans les cellules contenant des dates
  3. Créer 2 boutons:
    • ruban "Insertion", puis "Formes", puis "Rectangle"
  4. Enregistrer le fichier au format .xlsm.
    Ce format de fichier spécifique, différent de l'habituel .xlsx va nous permettre d'enregistrer les macros dans la partie suivante.

Voici un exemple du rendu attendu:

image Excel du rendu attendu

Si besoin, voici le fichier au format .xlsm à télécharger, avec ce rendu, sans les macros.
Téléchargement ici: minuteur-rendu-sans-macro-vba.xlsm.




Planifier nos macros

Avant d'enregistrer une macro, il faut penser à son déroulement.
Ici, nous avons prévu 2 parties

  1. initier le minuteur
  2. arrêter le minuteur
Mais il faut également penser à sa réutilisation, donc, lors de la phase d'initialisation, on va également penser à supprimer les anciennes données déjà existantes, afin de réinitialiser l'ensemble et recommencer.

Pour le minuteur, nous allons actualiser la formule =MAINTENANT() puis copier et coller son contenu en valeur dans les cellules "B3:B4".

Nous avons donc:

  1. bouton: initier le minuteur
    1. supprimer les données des cellules "B3:B4"
    2. actualiser la formule à l'aide de la touche "F9"
    3. enregistrer le temps en copiant "A2" et en collant sa valeur en "B3"
  2. bouton: arrêter le minuteur
    1. actualiser la formule à l'aide de la touche "F9"
    2. enregistrer le temps en copiant "A2" et en collant sa valeur en "B4"

On va démarrer l'enregistrement des actions, ça se passe dans le ruban "Affichage", puis "Macros", puis "Enregistrer une macro..."

image Excel de l'emplacement de l'enregistreur de macro



Enregistrement des macros VBA

On commence par la première macro que l'on nomme "lancer_le_minuteur".
Une fois avoir cliqué sur "OK", on peut voir en bas à gauche du classeur qu'une macro est en cours d'enregistrement:

image Excel d'une macro en cours d'enregistrement

On peut cliquer sur ce bouton stop pour arrêter l'enregistrement.

La liste des actions à effectuer pendant cet enregistrement:

  1. sélectionner la cellule "B3"
  2. appuyer sur la touche du clavier "Suppr"
  3. sélectionner la cellule "B4"
  4. appuyer sur la touche du clavier "Suppr"
  5. appuyer sur la touche du clavier "F9"
  6. sélectionner la cellule "A2"
  7. appuyer sur les touches du clavier "Ctrl" + "C" ou ruban "Accueil", puis "Copier"
  8. sélectionner la cellule "B3"
  9. appuyer sur les touches du clavier "Ctrl" + "Alt" + "V" et sélectionner "Valeurs" ou ruban "Accueil", puis "Coller en Valeurs"
  10. cliquer sur le bouton stop pour arrêter l'enregistrement de la macro
Notre première macro "lancer_le_minuteur" est prête! On peut maintenant l'affecter au bouton correspondant.
  1. clic droit sur le bouton "lancer le minuteur"
  2. puis "Affecter une macro..."
  3. clic sur la macro "lancer_le_minuteur"
  4. clic sur "OK"
Maintenant, lorsqu'on clic sur le bouton "lancer le minuteur", ça exécute toutes les actions listées ci-dessus, exactement dans cet ordre, on a automatisé notre première tâche!

Enregistrons la deuxième macro que l'on nomme "arreter_le_minuteur".
La liste des actions à effectuer pendant cet enregistrement:

  1. appuyer sur la touche du clavier "F9"
  2. sélectionner la cellule "A2"
  3. appuyer sur les touches du clavier "Ctrl" + "C" ou ruban "Accueil", puis "Copier"
  4. sélectionner la cellule "B4"
  5. appuyer sur les touches du clavier "Ctrl" + "Alt" + "V" et sélectionner "Valeurs" ou ruban "Accueil", puis "Coller en Valeurs"
  6. cliquer sur le bouton stop pour arrêter l'enregistrement de la macro
Notre deuxième macro "arreter_le_minuteur" est prête! On peut maintenant l'affecter au bouton correspondant.




Code VBA généré

Pour visualiser comment l'enregistreur de macro a traduit nos actions, on peut utiliser le raccourci clavier "Alt" + "F11".
Une fenêtre d'édition de code VBA s'ouvre. En allant dans la partie "Modules" puis en double cliquant sur le "Module1" on peut voir le code VBA suivant:

image Excel du code VBA généré



Fichier complet à télécharger

Voici le fichier complet au format .xlsm à télécharger, avec les macros et leurs affectations sur les boutons.
Téléchargement ici: minuteur-macro-vba.xlsm.