Créer une macro VBA AUTOMATIQUEMENT sur EXCEL avec l’enregistreur [#03 FORMATION EXCEL VBA COMPLETE]

Dans ce nouveau chapitre de la formation VBA d’excelformation.fr, je vais vous montrer comment créer votre première macro VBA pour automatiser la réalisation des tâches les plus répétitives. Et le plus beau, c’est que pour cela nous n’allons même pas avoir besoin de saisir la moindre ligne de programmation. Nous allons en effet découvrir un outil magique d’Excel : l’enregistreur de macro !

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

 

 

Tutoriel Vidéo

 

Pour suivre cet article dans les meilleures conditions, je vous invite à télécharger le fichier en suivant le lien disponible ci-dessous :

 

Introduction

Dans ce chapitre, nous allons créer une macro VBA ! Oui vous avez lu, alors que dans les chapitres précédents, nous venons à peine de découvrir à quoi peut bien servir le langage VBA, nous allons maintenant créer une macro, et pas une des moindres, car nous allons créer une application d’enregistrement des entrées et des sorties de personnes dans une entreprise (application de pointage horaires).

 

1. Recette de cuisine pour créer une feuille de pointage horaires

Pour pouvoir enregistrer la commande qui va permettre à Excel de sauvegarder chaque pointage au sein d’une base de données, nous devons déjà mettre en place un algorithme très simple dans lequel nous allons définir chaque action à réaliser.

Si le mot algorithme peut faire peur, nous pouvons plutôt parler de « recette ». Il s’agit en effet d’écrire chaque étape afin de savoir exactement ce que nous allons demander à la macro de réaliser.

Concrètement, voici ce que nous allons faire :

Excel formation - VBA03 Enregistreur de macro - 01

Nous disposons d’une case (ici en jaune) dans laquelle un utilisateur va saisir son nom.

Nous allons vouloir qu’en cliquant sur un unique bouton, Excel enregistre l’heure, la date, le nom et le sens de son pointage (Arrivée/Départ).

Notre recette de cuisine va donc ressembler à la suivante :

  • 1. Sélectionner la ligne 10,
  • 2. Effectuer un clic-droit > Insérer
  • 3. Sélectionner la cellule A10,
  • 4. Saisir la formule =MAINTENANT(),
  • 5. Sélectionner la cellule B10,
  • 6. Saisir la formule =B6,
  • 7. Sélectionner les cellules A10 et B10
  • 8. Copier les cellules,
  • 9. Clic-droit > Collage spécial > en valeur,
  • 10. Sélectionner la cellule C10,
  • 11. Saisir : « Arrivée »,
  • 12. Sélectionner la ligne 11
  • 13. Effectuer un clic-droit > Copier,
  • 14. Sélectionner la ligne 10,
  • 15. Effectuer un clic-droit > Collage spéciale > Mise en forme > OK,
  • 16. Sélectionner la cellule B6,
  • 17. Appuyer sur la touche [Suppr]

Et c’est tout !

Quelques commentaires sur cette recette avant de la mettre en application :

  • Il n’est pas possible de se placer directement en bas d’une base de données avec l’enregistreur, car à chaque fois que nous sélectionnons une cellule (ou que nous nous déplaçons à l’aide des flèches), Excel enregistre directement la position de la cellule de destination,
  • C’est la raison pour laquelle nous insérons directement une nouvelle ligne sous les en-têtes de colonnes (vous comprendrez mieux lorsque plusieurs enregistrements auront été inséré),
  • L’inconvénient de cette méthode, c’est qu’au moment de l’insertion, Excel va appliquer un format sur les cellules identiques à celui des cellules situées juste au-dessus, il est donc nécessaire en fin de macro de récupérer le format de la ligne insérée juste en dessous

 

2. ACTION !

Maintenant que nous savons exactement ce que nous allons devoir faire, il ne reste plus qu’à le mettre en application.

Pour cela, nous commençons par cliquer sur le bouton d’enregistrement, disponible dans le menu Développeur que nous avons activé dans le chapitre précédent (ou le bouton situé en bas, dans la barre d’état d’Excel) :

Excel formation - VBA03 Enregistreur de macro - 02

Nous recliquerons ensuite sur ce même bouton à la fin de l’enregistrement.

N’oubliez pas de saisir un nom de test dans la cellule B6 avant de lancer la recette ! Puis nous pouvons lancer l’enregistrement.

Excel formation - VBA03 Enregistreur de macro - 03

Juste après avoir cliqué sur le bouton, une fenêtre se lance pour demander de saisir un nom pour la macro, appelons la « enregistrerMacro » par exemple.

Nous pouvons affecter directement un raccourci pour lancer la macro et éventuellement choisir de l’insérer dans un autre classeur ouvert ou dans le classeur des macros personnelles.

Enfin, nous pouvons saisir un commentaire qui sera ajouté dans le code source, juste avant la macro.

Laissons toutes les options par défaut (en dehors du nom de la macro), puis nous pouvons lancer pour de bon l’enregistrement en appuyant sur le bouton [OK] :

Excel formation - VBA03 Enregistreur de macro - 04

Attention, à partir de maintenant, toute ce que vous allez faire dans l’application Excel va être enregistré dans la macro !! Il est donc primordial de ne pas commettre d’imper et de réaliser chacune des opérations EXACTEMENT comme le prévoit la recette ! C’est très important de ne pas réaliser d’étape supplémentaire, qui serait immanquablement reproduite dans la macro.

À la fin de l’enregistrement, n’oubliez pas de rappuyer sur le bouton pour stopper la macro.

Normalement vous devriez avoir un résultat semblable à :

Excel formation - VBA03 Enregistreur de macro - 05

Comme vous pouvez le constater, il ne reste qu’un détail à corriger : la cellule B10 fait bien apparaître la date du pointage, mais pas l’heure correspondante. Il suffit pour cela de se rendre dans le formatage de la cellule (sélection de la cellule > Clic-droit > Format de cellule…) :

Excel formation - VBA03 Enregistreur de macro - 06

Puis dans la catégorie Personnalisée, nous saisissons le format de cellule suivant : « jj/mm/aaaa hh:mm », afin d’afficher l’heure du pointage juste après la date :

Excel formation - VBA03 Enregistreur de macro - 07

Nous validons simplement en appuyant sur le bouton [OK] :

Excel formation - VBA03 Enregistreur de macro - 08

 

3. Lancement de la macro

Il existe de trois méthodes pour lancer la macro que nous venons de créer :

Soit depuis le menu Développeur > Macros

Excel formation - VBA03 Enregistreur de macro - 09

Ce bouton permet de lancer la fenêtre de sélection de macro :

Excel formation - VBA03 Enregistreur de macro - 10

Ici, il suffit de sélectionner la macro que nous venons de créer, puis de cliquer sur le bouton [Exécuter] :

Excel formation - VBA03 Enregistreur de macro - 11

Il est également possible de lancer cette même fenêtre en utilisant le raccourci clavier [Alt]+[F8].

Enfin la troisième méthode, et également la plus pratique consiste à utiliser un bouton pour lancer la macro (ou n’importe quel autre objet).

Pour cela, toujours depuis le menu Développeur, nous choisissons d’insérer un contrôle de formulaire de type bouton :

Excel formation - VBA03 Enregistreur de macro - 12

Puis nous le dessinons sur la feuille de calcul :

Excel formation - VBA03 Enregistreur de macro - 13

De cette manière Excel nous présente une fenêtre pour choisir la macro à affecter à ce bouton :

Excel formation - VBA03 Enregistreur de macro - 14

Il suffit maintenant de changer le texte du bouton, puis de cliquer sur celui-ci pour lancer la macro :

Excel formation - VBA03 Enregistreur de macro - 15

 

4. Et le départ ?

Maintenant, nous allons créer la macro pour enregistrer le départ.

Et pour gagner quelques secondes, nous allons créer le bouton en même temps !

Nous reprenons ce que nous venons juste de faire, mais en commençant par la fin.

Autrement dit, nous créons un nouveau bouton :

Excel formation - VBA03 Enregistreur de macro - 16

Puis lorsqu’Excel affiche à l’écran la fenêtre d’affectation de la macro, nous saisissons un nom (par exemple « enregistrerDepart »), et au lieu de cliquer sur le bouton [OK], nous choisissons [Enregistrer…] :

Excel formation - VBA03 Enregistreur de macro - 17

Puis nous répétons notre recette de cuisine, en remplaçant simplement le terme « Arrivée » par « Départ » :

Excel formation - VBA03 Enregistreur de macro - 18

Et voilà, il n’y a maintenant plus qu’à laisser opérer la magie !!

Un dernier point avant de se quitter, un classeur qui contient une macro VBA doit être enregistré sous le format *.xlsm, sous peine de perdre la macro que nous venons de produire.

Excel formation - VBA03 Enregistreur de macro - 19

 

 



Articles qui pourraient vous intéresser

Comment lancer une macro VBA (13 méthodes !) [#08 FORMATION EXCEL VBA COMPLETE]

Les tableaux croisés dynamiques, c’est facile !

Dates et heures sur Excel : #05 Comment calculer l'âges et l’ancienneté sur Excel

Tout sur les procédures Function en VBA [#07 FORMATION EXCEL VBA COMPLETE]

Commentaires

Il n'y a aucun commentaire...

Poster un commentaire

Pseudo
Commentaire

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.