Médiaforma

All posts in VBAExcel

Si vous voulez un bouton personnalisable, vous utiliserez un bouton de commande et non un bouton de formulaire.

Basculez sur l’onglet Développeur. Dans le groupe Contrôles, cliquez sur l’icône Insérer, puis sur l’icône Bouton de commande (Contrôle ActiveX) :

Dessinez le bouton sur la feuille de calcul en maintenant le bouton gauche de la souris enfoncé. Au relâchement du bouton gauche, un bouton intitulé CommandButton s’affiche.

Cliquez du bouton droit sur le bouton de commande et sélectionnez Propriétés dans le menu. La boîte de dialogue Propriétés s’affiche. Utilisez les propriétés (Name) et Caption pour respectivement donner un nom au bouton de commande (ici, DL) et choisir son libellé (ici, Date Longue) :

Sous l’onglet Développeur, dans le groupe Contrôles, cliquez sur Visualiser le code. Cette action affiche la fenêtre Microsoft Visual Basic pour Applications. Sélectionnez DL dans la première liste déroulante (1) et Click dans la seconde (3). Un code VBA s’affiche dans la partie centrale de la fenêtre. Entrez le nom de la macro (ici DateLongue) puis fermez la fenêtre Microsoft Visual Basic pour Applications :

Cliquez sur l’icône Mode Création pour quitter ce mode de fonctionnement :

Vous pouvez vérifier que le bouton de commande fonctionne en sélectionnant les cellules à mettre en forme et en cliquant sur le bouton.

Pour terminer, voyons comment personnaliser le bouton. Cliquez sur l’icône Mode Création (onglet Développeur, groupe Contrôles) pour passer en mode Création. Cliquez sur le bouton puis sur l’icône Propriétés. Vous pouvez choisir entre autres la couleur d’arrière-plan et la couleur d’écriture du bouton, l’image d’arrière-plan du bouton et son ombrage :

Une fois le bouton personnalisé, cliquez sur l’icône Mode Création (onglet Développeur, groupe Contrôles) pour pouvoir l’utiliser.

Vous en savez maintenant assez sur l’enregistreur de macros pour créer vos propres macros et les exécuter :

  • depuis la boîte de dialogue Macros;
  • avec un raccourci clavier ;
  • en cliquant sur une icône dans la barre d’outils Lancement rapide;
  • en cliquant sur une icône dans le ruban ;
  • en cliquant sur un bouton de contrôle ou un bouton de commande.

Pour terminer, nous allons voir comment affecter une macro à un bouton de formulaire.

Basculez sur l’onglet Développeur. Dans le groupe Contrôles, cliquez sur l’icône Insérer, puis sur l’icône Bouton (Contrôle de formulaire) :

Dessinez le bouton sur la feuille de calcul en maintenant le bouton gauche de la souris enfoncé. Au relâchement du bouton gauche, la boîte de dialogue Affecter une macro s’affiche. Sélectionnez la macro dans la liste et cliquez sur OK :

Cliquez sur le libellé du bouton et modifiez-le :

Si nécessaire, vous pouvez modifier la taille du bouton. Cliquez dessus et agissez sur ses poignées de redimensionnement. De même, vous pouvez modifier son emplacement. Pointez-le, maintenez le bouton droit de la souris enfoncé et déplace-le à l’endroit souhaité. Au relâchement du bouton droit de la souris, sélectionnez Placer ici dans le menu.

Les boutons de formulaire sont assez peu personnalisables. Pour accéder aux options disponibles, cliquez du bouton droit sur le bouton et sélectionnez Format de contrôle dans le menu :


Si vous préférez, vous pouvez définir une icône dans le ruban pour exécuter la macro.

Lancez la commande Options dans le menu Fichier. La boîte de dialogue Options Excel s’affiche. Sélectionnez Personnaliser le ruban dans la partie gauche de la boîte de dialogue (1). Cliquez sur Nouvel onglet (2) pour définir un nouvel onglet dans le ruban. Cliquez sur cet onglet puis sur le bouton Renommer pour lui donner un nom plus approprié que « Nouvel onglet ». Ici par exemple, nous appellerons le nouvel onglet Macros. Cliquez sur Nouveau groupe puis sur Renommer. Donnez le nom Dates au nouveau groupe :

Il ne vous reste plus qu’à insérer une icône qui représente la macro dans le groupe Dates. Sélectionnez Macros (1) dans la liste déroulante. Assurez-vous que le groupe Dates est sélectionné dans la zone de liste de droite, cliquez sur DateLongue (2) puis sur Ajouter (3). Si nécessaire, vous pouvez cliquer sur Renommer (4) pour choisir l’icône de la macro DateLongue :

Fermez la boîte de dialogue Options Excel en cliquant sur OK. La macro DateLongue est accessible dans le groupe Dates, sous l’onglet Macros du ruban :


Pour accéder facilement à une macro, vous pouvez lui affecter une icône dans la barre d’outils Accès rapide. Lancez la commande Options dans le menu Fichier. La boîte de dialogue Options Excel s’affiche. Sélectionnez Barre d’outils Accès rapide dans la partie gauche de la boîte de dialogue (1). Sélectionnez Macros dans la liste déroulante Choisir les commandes dans les catégories suivantes (2). Cliquez sur la macro dans la zone de liste inférieure (3), puis cliquez sur Ajouter (4) :

Si l’icône par défaut ne vous convient pas, vous pouvez la changer en cliquant sur le bouton Modifier, dans la partie inférieure droite de la boîte de dialogue :

Choisissez une icône et cliquez sur OK. Il ne vous reste plus qu’à cliquer sur OK pour ajouter l’icône de la macro dans la barre d’outils Accès rapide :


Définition d’une première macro

A titre d’exemple, nous allons définir une macro qui met en forme des dates :

Avant de sélectionner l’onglet Développeur et de cliquer sur l’icône Enregistrer une macro dans le groupe Code, sélectionnez les cellules dont le format doit être changé :

Puis cliquez sur l’icône Enregistrer une macro. La macro aura pour nom DateLongue. Elle sera accessible avec le raccourci clavier Contrôle + Majuscule + D, et elle sera stockée dans le classeur courant :

Un clic sur le bouton OK et l’enregistrement commence. Pour arriver au résultat recherché, le plus simple consiste à basculer sur l’onglet Accueil et à cliquer sur le lanceur de boîte de dialogue Nombre. La boîte de dialogue Format de cellule s’affiche. Sélectionnez Date dans la zone de liste Catégorie et le type Date Longue dans la zone de liste Type, puis cliquez sur OK :

Vous allez maintenant stopper l’enregistrement de la macro. Basculez sur l’onglet Développeur dans le ruban puis cliquez sur Arrêter l’enregistrement dans le groupe Code.

Tester la macro

Pour vérifier que la macro fonctionne, commencez par saisir quelques dates dans la feuille de calcul où a été définie la macro ou dans une autre feuille de calcul du classeur :

Sélectionnez les cellules que vous venez de définir puis appuyez simultanément sur les touches Contrôle, Majuscule et D du clavier. La mise en forme est immédiate :

Remarque

Pour exécuter la macro, vous pouvez également basculer sur l’onglet Développeur et cliquer sur l’icône Macros du groupe Code. La boîte de dialogue Macro s’affiche. Sélectionnez la macro à exécuter dans la zone d liste Nom de la macro et cliquez sur Exécuter :

Modifier une macro

Une fois qu’une macro a été définie, vous pouvez toujours modifier ou définir son raccourci clavier ou sa définition. Cliquez sur l’icône Macros, dans le groupe Code de l’onglet Développeur du ruban. La boîte de dialogue Macro s’affiche. Cliquez sur la macro concernée puis cliquez sur Options. Une nouvelle boîte de dialogue s’affiche dans laquelle vous pouvez définir ou modifier le raccourci clavier et la définition de la macro :

Faites les modifications nécessaires puis cliquez sur OK pour les prendre en compte.

De retour dans la boîte de dialogue Macro, vous avez peut-être été tenté de cliquer sur le bouton Modifier. Cette action déclenche l’ouverture de la fenêtre Microsoft Visual Basic pour Applications dans laquelle vous voyez le code VBA généré par l’enregistreur de macros :

Chaque fois que vous créez une macro, Excel écrit du code VBA à votre place. Il est donc tout à fait possible de faire du VBA sans … faire du VBA !


Avant d’aborder le langage VBA, je vous propose de découvrir l’enregistreur de macros. Cet outil enregistre les actions effectuées dans Excel et les transforme en des instructions VBA. Une fois l’enregistreur lancé, tout ce que vous faites au clavier et à la souris est enregistré. Par exemple, la frappe des touches, le clic sur une cellule, le clic sur des icônes du ruban, la mise en forme des cellules, lignes et colonnes, etc.. Lorsque vous arrêtez l’enregistreur, des instructions VBA sont générées et enregistrées dans le classeur. Par la suite, vous pourrez exécuter la macro autant de fois que vous le souhaitez en utilisant une icône dans l’onglet Développeur du ruban ou un raccourci-clavier.

Pour enregistrer une nouvelle macro, sélectionnez l’onglet Développeur dans le ruban, puis cliquez sur l’icône Enregistrer une macro dans le groupe Code :

Cette action déclenche l’ouverture de la boîte de dialogue Enregistrer une macro :

Dans cette boîte de dialogue :

  • Définissez le nom de la macro, sans espace. Si le nom de la macro est composé de plusieurs mots, vous pouvez commencer chaque mot par une majuscule ou séparer les mots entre eux par des caractères de soulignement (_).
  • Affectez si nécessaire un raccourci clavier à la macro pour faciliter son exécution.
  • La liste déroulante Enregistrer la macro dans est initialisée par défaut à Ce classeur. La macro sera donc liée au classeur courant et ne pourra s’exécuter que dans ce classeur. Vous pouvez également choisir de l’enregistrer dans le classeur de macros personnelles. Dans ce cas, la macro est enregistrée dans le classeur masqué xlbs, qui se trouve dans le dossier C:\Utilisateurs\nom d’utilisateur\AppData\Local\Microsoft\Excel\XLStart. Elle sera disponible dans tous les classeurs. Les classeurs stockés dans le dossier XLStart s’ouvrent automatiquement à chaque démarrage d’Excel, et les éventuelles macros enregistrées dans le classeur de macros personnelles sont automatiquement accessibles.
  • Décrivez la macro en quelques lignes dans la zone Description.

Cliquez enfin sur OK lorsque vous êtes prêt à lancer l’enregistrement.


Qu’est-ce que VBA ?

VBA est l’abréviation de Visual Basic for Applications. Comme son nom l’indique, VBA est issu du langage Visual Basic de Microsoft. Le « A » de VBA désigne les applications de la suite Office. Essentiellement Word, Excel, PowerPoint et Outlook. En utilisant VBA, vous pourrez donc automatiser certaines tâches dans les applications Office. Cette formation s’intéresse avant tout à l’utilisation de VBA dans Excel, mais les principes abordés s’appliquent (sauf lorsqu’ils sont trop spécifiques) aux autres applications de la suite.

L’onglet Développeur

L’onglet Développeur du ruban d’Excel contient plusieurs icônes nécessaires lorsque l’on développe du code VBA. Cet onglet n’étant pas accessible par défaut dans le ruban, voyons comment le faire apparaître.

Lancez la commande Options dans le menu Fichier. La boîte de dialogue Options Excel s’affiche. Basculez sur l’onglet Personnaliser le ruban (1), cochez la case Développeur (2) et validez en cliquant sur OK (3).

L’onglet Développeur fait désormais partie du ruban d’Excel. Vous l’utiliserez pour tous vos développements VBA :