Comment affecter une macro à un bouton dans Excel (Guide facile)

Bien qu'il existe de nombreuses façons différentes d'exécuter une macro dans Excel, aucune de ces méthodes ne peut être aussi simple et conviviale que de cliquer sur un bouton.

Et pour que cela fonctionne, vous devez d'abord affecter une macro à un bouton.

Dans ce didacticiel, je vais vous montrer quelques façons d'insérer un bouton dans Excel, puis d'attribuer une macro à ce bouton (ou forme). Une fois cela fait, dès qu'un utilisateur clique sur le bouton, le code VBA de la macro sera exécuté.

Pour les besoins de ce didacticiel, j'utiliserai le code de macro VBA ci-dessous (qui sélectionne simplement la cellule A1 dans la feuille active et y entre le texte "Bonjour" et le colore en rouge).

Sub GoodMorning() With ActiveSheet.Range("A1") .Value = "Good Morning" .Interior.Color = vbRed End With End Sub

Le code VBA ci-dessus est placé dans un module régulier de l'éditeur VB

Voyons maintenant comment vous pouvez affecter cette macro à un bouton ou à une forme dans Excel !

Insérer une forme et affecter une macro à cette forme

Bien qu'il existe des boutons dédiés que vous pouvez insérer dans la feuille de calcul, puis lui attribuer la macro, je vais d'abord couvrir comment affecter une macro à une forme.

Personnellement, j'aime cette méthode et la préfère aux deux autres méthodes couvertes plus tard. Vous pouvez facilement insérer une forme (carré ou rectangle) et la faire ressembler à un bouton.

Et puisqu'il s'agit d'une forme, vous pouvez facilement la formater pour qu'elle soit parfaite avec votre formatage existant ou les couleurs de votre marque.

Voici les étapes pour insérer une forme dans Excel :

  1. Cliquez sur l'onglet Insérer
  2. Dans le groupe illustrations, cliquez sur Formes
  3. Dans les options Formes, cliquez sur l'option Rectangle. Vous remarquerez que votre curseur se transforme en icône plus
  4. Cliquez n'importe où sur la feuille de calcul. Cela insérera une forme de rectangle dans la feuille de calcul.
  5. Redimensionnez le rectangle et formatez-le (donnez-lui une bordure, une couleur, une teinte si vous le souhaitez).

Après avoir effectué les étapes ci-dessus, vous aurez une forme de rectangle dans la feuille de calcul, et nous allons maintenant attribuer une macro à cette forme.

Notez que j'ai inséré une forme rectangulaire dans cet exemple, mais vous pouvez insérer la forme de votre choix (comme un cercle, un triangle ou une flèche). Je préfère utiliser un rectangle et cela ressemble à un bouton et est plus intuitif.

Voyons maintenant comment affecter une macro à cette forme.

  1. Faites un clic droit sur la forme sur laquelle vous souhaitez affecter la macro
  2. Dans les options de menu qui s'affichent, cliquez sur « Attribuer une macro ». Cela ouvrira la boîte de dialogue d'affectation de macro
  3. Dans la boîte de dialogue Affecter une macro, vous verrez une liste de toutes les macros que vous avez dans le classeur
  4. Cliquez sur le nom de la macro que vous souhaitez affecter à cette forme. Dans cet exemple, je vais cliquer sur la macro nommée 'GoodMorning
  5. Cliquez sur OK

C'est ça!

La macro sélectionnée a maintenant été affectée à la forme.

Maintenant, lorsque vous passez le curseur sur la forme, l'icône de la main s'affiche. ce qui indique que maintenant cette forme est devenue cliquable.

Et maintenant, si vous cliquez sur la forme, la macro attribuée s'exécutera.

Vous pouvez taper n'importe quel texte dans la forme pour la rendre plus intuitive (comme « Cliquez ici pour exécuter la macro »). Pour faire ça. cliquez avec le bouton droit sur la forme, puis cliquez sur Modifier le texte. Vous pouvez maintenant taper dans la forme de la zone de texte.

Notez que vous ne pourrez pas cliquer et exécuter la macro lorsque la forme a été sélectionnée (c'est-à-dire que vous voyez une bordure autour de la forme qui apparaît lorsque vous la sélectionnez), pour la rendre cliquable, appuyez sur la touche Échap ou cliquez n'importe où dans la feuille de travail.

De plus, lorsque vous avez déjà affecté la macro à la forme, vous ne pourrez pas la sélectionner en utilisant la touche gauche de la souris (car elle est devenue cliquable et un clic gauche exécuterait maintenant la macro). Dans ce cas, sélectionnez la forme, maintenez la touche Ctrl enfoncée, puis appuyez sur la touche gauche.

Garder la forme visible lorsque vous masquez/redimensionnez des lignes/colonnes

Dans Excel. lorsque vous insérez une forme, elle se trouve sur les cellules - comme un graphique/objet.

Cela présente également l'inconvénient que lorsque vous redimensionnez ou masquez des lignes/colonnes sur lesquelles la forme est superposée, la forme suit également.

Dans l'exemple ci-dessous, la forme est masquée lorsque je masque la colonne sur laquelle elle est placée.

Si vous ne voulez pas que cela se produise, suivez les étapes ci-dessous :

  1. Faites un clic droit sur la forme
  2. Cliquez sur Formater la forme
  3. Dans le volet Format de la forme (ou la boîte de dialogue si vous utilisez Excel 2010 ou des versions antérieures), sélectionnez Taille et propriétés
  4. Dans les options Propriétés, sélectionnez l'option - « Ne pas déplacer ou dimensionner avec des cellules »
  5. Fermer le volet (ou la boîte de dialogue)

Désormais, lorsque vous redimensionnez des lignes/colonnes ou que vous les masquez, la forme reste à sa place.

Attribuer une macro au bouton de contrôle de formulaire

Si vous n'êtes pas trop préoccupé par la mise en forme du bouton et que vous êtes d'accord avec les boutons gris ordinaires, vous pouvez l'insérer rapidement à partir du contrôle de formulaire (ou du contrôle ActiveX comme indiqué ci-dessous), puis lui attribuer une macro.

Pour que cela fonctionne, vous aurez besoin de l'onglet Développeur dans votre ruban. Si vous ne l'avez pas, voici un didacticiel détaillé étape par étape sur l'obtention de l'onglet développeur dans le ruban Excel.

Une fois que l'onglet développeur est visible, vous pouvez utiliser les étapes ci-dessous pour insérer rapidement un bouton et lui attribuer une macro :

  1. Cliquez sur l'onglet Développeur
  2. Dans le groupe Contrôle, cliquez sur Insérer.
  3. Dans les options qui s'affichent, dans les options Contrôles de formulaire, cliquez sur l'option Bouton (Contrôle de formulaire).
  4. Cliquez n'importe où sur la feuille de calcul. Cela insérera le bouton partout où vous cliquerez et ouvrira automatiquement la boîte de dialogue « Attribuer une macro ».
  5. Dans la boîte de dialogue Affecter une macro, vous verrez une liste de toutes les macros que vous avez dans le classeur
  6. Cliquez sur le nom de la macro que vous souhaitez attribuer à ce bouton. Dans cet exemple, je vais cliquer sur la macro nommée 'GoodMorning'
  7. Cliquez sur OK

Les étapes ci-dessus insèrent un bouton auquel la macro spécifiée est affectée.

Par défaut, ce serait un petit bouton avec du texte tel que "Bouton" écrit dessus. Vous pouvez changer le texte en ce que vous voulez et pouvez également changer la forme du bouton (en faisant glisser les bords).

Comme il s'agit d'un objet placé sur la feuille de calcul (tout comme les formes/graphiques), vous pouvez le faire glisser et le placer n'importe où dans la feuille de calcul.

Un inconvénient de l'utilisation du bouton Contrôle de formulaire est que vous n'avez pas beaucoup de contrôle sur la mise en forme. Par exemple, vous ne pouvez pas changer la couleur du gris à autre chose.

Bien qu'il y ait un peu de mise en forme que vous pouvez faire avec un bouton de contrôle de formulaire, c'est loin de ce que vous pouvez faire avec des formes.

Vous obtenez ces options de formatage de bouton lorsque vous cliquez avec le bouton droit sur le bouton, puis cliquez sur Contrôle du format.

Cela ouvrira la boîte de dialogue Contrôle du format dans laquelle vous pourrez modifier le type/la couleur de la police, la taille, l'alignement, etc.

Une bonne chose à propos de ce bouton est qu'il ne se cache pas ou ne redimensionne pas lorsque vous masquez les lignes/colonnes ou les redimensionnez. Cependant, il se déplacerait si vous changez la hauteur ou la largeur ou la ligne/colonne sur laquelle le bouton est placé.

Si vous ne souhaitez pas que le bouton reste à sa place, vous pouvez modifier le paramètre en suivant les étapes ci-dessous :

  1. Faites un clic droit sur le bouton
  2. Cliquez sur Contrôle du format
  3. Cliquez sur l'onglet Propriétés
  4. Sélectionnez l'option - "Ne pas déplacer ou dimensionner avec des cellules"
  5. Cliquez sur OK

Attribuer une macro à un bouton de contrôle ActiveX

Outre le bouton Contrôle de formulaire, il existe également un bouton de contrôle ActiveX auquel vous pouvez affecter une macro.

Dans la plupart des cas, vous n'aurez pas besoin d'utiliser le bouton de contrôle ActiveX, et je vous recommande de ne l'utiliser que lorsque vous comprenez parfaitement ce que c'est et que vous savez ce que vous faites.

Vous vous demandez pourquoi nous avons deux types de boutons différents : le contrôle de formulaire et l'ActiveX ? Alors que les contrôles de formulaire sont intégrés à l'application Excel, ActiveX est chargé à partir d'une DLL distincte (bibliothèques de liens dynamiques). Cela rend les boutons de contrôle de formulaire beaucoup plus robustes et fiables par rapport aux boutons ActiveX. Vous pouvez en savoir plus sur cette différence ici dans un article dans StackOverflow.

Cela rend aussi, parfois, ActiveX un peu glitch et imprévisible. Ainsi, bien que je le couvre dans ce didacticiel, je ne recommande pas d'utiliser le bouton ActiveX et de lui attribuer une macro.

Pour insérer un bouton ActiveX puis lui affecter une macro, suivez les étapes ci-dessous :

  1. Cliquez sur l'onglet Développeur
  2. Dans le groupe Contrôle, cliquez sur Insérer.
  3. Dans les options qui s'affichent, dans les options Contrôles ActiveX, cliquez sur l'option Bouton de commande.
  4. Cliquez n'importe où sur la feuille de calcul. Cela insérera le bouton partout où vous cliquez.
  5. Double-cliquez sur le bouton et il ouvrira le backend VB Editor où vous pourrez placer le code pour le bouton ActiveX

Avec le contrôle ActiveX, vous obtenez beaucoup plus de flexibilité avec un seul bouton. Par exemple, vous pouvez spécifier une macro à exécuter lorsque vous cliquez simplement une fois sur le bouton et une autre macro lorsque vous double-cliquez ou même une autre lorsque vous utilisez la touche fléchée haut/bas.

Encore une fois, ce n'est pas quelque chose que vous devez utiliser dans votre travail régulier.

Une autre option que vous pouvez envisager (lorsque vous travaillez avec des boutons/formes et que vous leur attribuez des macros) consiste à ajouter la macro à la barre d'outils d'accès rapide. De cette façon, vous pouvez exécuter la macro en un seul clic et elle est toujours visible dans le QAT.

J'espère que vous avez trouvé ce tutoriel utile. Si vous souhaitez apprendre VBA, vous pouvez consulter des didacticiels Excel VBA plus approfondis ici.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave