Comment faire des macros en VBA sur Excel ?

macro-vba-excel-cleex-e1651762612811

Si vous devez faire régulièrement les mêmes reportings dans Excel ou exécuter des tâches répétitives, les macros Excel sont certainement la solution pour automatiser votre travail. Il peut s’agir pour vous de copier-coller des cellules ou plages de cellules, de créer des onglets, de générer des graphiques, de mettre des formules,… Tout ceci peut être exécuté en automatique par cet ouil magique d’Excel : les macros VBA.

Vous avez peut être déjà appréhendé les macros dans Excel via un écran de débogage. 😱 Dans ce cas, je comprends que le sujet puisse vous paraitre obscur. Dans cet article, nous allons reprendre les bases des macros sur Excel. Vous découvrirez leurs intérêts, les avantages et les différents modes de création. Suivez le guide !

Qu’est ce qu’une macro dans Excel ?

Une macro Excel est un mini programme directement stocké dans votre classeur et attaché à celui-ci ou à directement une feuille de calcul en particulier. La complexité du programme peut être très diversifiée en fonction du niveau de maitrise du développeur et des attentes du programme. Le rôle de la macro va être de réaliser une suite d’actions dans les cellules de votre classeur (création de formules, copier-coller, mises en forme), dans les onglets (création de graphique, ajout d’une feuille, déplacement), dans les fichiers (création, suppression, modification de classeur). Les macros sont disponibles dans plusieurs outils de la suite de logiciels de Microsoft Office. Ainsi, vous pouvez créer des séquences très riches avec la récupération de données dans une base de donnée, la production d’un reporting dans Excel et l’envoi de ces reportings via Outlook.

Qu’est ce que le VBA dans Excel ?

VBA signie Visual Basic for Applications. Il s’agit d’un langage de programmation de Microsoft directement intégré dans ses applications comme Excel, Word, Power Point, Outlook. A la différence des autres langages de programmation, on ne peut pas coder de programme en VBA indépendemment des outils de Microsoft. Il faut donc une licence et les logiciels de Microsoft pour pouvoir faire du VBA. On dit que le code est exécuté dans les instances des documents.

Pourquoi faire du VBA sur Excel ?

L’intérêt majeur de maitriser la création des macros en VBA dans Excel est l’optimisation du temps de réalisation de votre travail. Il s’agit de procédures informatiques déroulant des suites d’actions en fonction d’un déclencheur. Si les tâches exécutées dans vos classeurs sont répétitives, faire une macro VBA dans Excel peut vous faire gagner beaucoup de temps.

Un autre intérêt est la capacité à créer de mini-applications. Ces applications peuvent avoir deux objectifs : le prototypage et la création de formulaires.

Le prototypage va permettre de créer rapidement et avec des coûts de développement limités, une application ou un logiciel directement hébergé dans Excel. La souplesse d’Excel et ses fonctionnalités natives permettront de générer, grâce à vos macros VBA, un logiciel totalement conforme à votre organisation et vos procédures. Ce prototype servira par la suite à la conception d’un cahier des charges pour le développement d’une application en propre. Parfois, le prototype en VBA sera suffisant pour les usages internes. Les utilisateurs appréciant qu’un outil soit parfaitement adapté à eux.

Cleex est capable de maintenir, d’adapter et de développer vos applications. Si vous êtes dans ce cas, prenez rapidement contact. Nous nous ferons un plaisir d’échanger avec vous sur vos besoins.

Les macros VBA dans Excel servent aussi à la création de formulaires. Plutôt que de laisser vos utilisateurs saisir directement dans votre fichier, vous pouvez créer des formulaires vérifiant la conformité des informations avant saisie. Cette solution est assez courante dans les entreprises.

Maintenant que vous avez bien en tête les avantages de la création des macros en VBA dans Excel, passons aux méthodologies pour leurs créations. Excel a pensé à nous en nous permettant de démarrer en douceur.

Comment faire du VBA sur Excel ?

Excel nous offre deux possibilités pour créer des macros. Des deux méthodologies résultera la génération de lignes de programmation en VBA.

La première solution est l’enregistreur de macro. L’enregistreur permet à l’utilisateur de produire du code VBA en sauvegardant des actions manuelles effectuées par l’utilisateur directement dans le classeur. Ce mode de création des macros est parfaitement adapté aux personnes débutant sur VBA. Il est simple et intuitif. Par la suite, il suffira d’observer le code généré et de chercher à comprendre sa signification pour pouvoir l’adapter. L’enregistreur des macros a cependant des limites. Certaines actions réalisées par l’utilisateur ne sont pas enregistrées. Ce sera notamment le cas pour des mises en forme conditionnelles de vos cellules en fonction des valeurs présentes dans celles-ci.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("C5:F13").Select
    Selection.Copy
    Range("C17").Select
    ActiveSheet.Paste
    Sheets.Add After:=ActiveSheet
    Sheets("Feuil2").Select
    Sheets("Feuil2").Name = "nouvel onglet"
End Sub

Exemple de code vba enregistré via l’enregistreur de macros dans Excel.

La seconde solution est la rédaction des macros directement dans l’éditeur. L’éditeur se nomme Visual Basic Editor (VBE). Cette solution exige d’avoir déjà des notions sur l’édition de programmes en VBA. Elle s’adresse à un public averti mais elle ne connait pas les limitations de l’enregistreur de macro. On pourra créer un programme plus complexe mêlant des actions sur Excel, sur Word, sur Outlook.

En réalité, la plupart des utilisateurs font un mix des différentes solutions. Ils passent par l’enregistreur pour générer les bases du code et viennent le modifier par la suite directement dans le VBE. Cela permet un gain de temps et évite de devoir mémoriser certaines synthaxes.

Comment créer une macro grâce à l’enregistreur ?

Pour créer une macro avec l’enregistreur, cliquez sur le bouton disponible en bas à gauche de votre fenêtre Excel.

Une fenêtre va s’ouvrir vous permettant de donner un nom à votre macro Excel et de définir une touche de raccourci ainsi qu’une description.

Une fois que vous aurez cliqué sur ok, vous pourrez exécuter les actions que vous souhaitez enregistrer. Pour notre exemple, je vais exécuter les actions suivantes et vous présenter le code généré.

Les actions réalisées :

  • Sélection de la cellule A1
  • Inscription du texte Bonjour
  • Sélection de la cellule A2
  • Format de la cellule A2 en monétaire
  • Mise en forme de la cellule A2 avec un remplissage en rouge
  • Sélection de la cellule A1
  • Copie et colle dans la cellule C3
  • Création d’un nouvel onglet

Voici le code généré :

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Bonjour"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "1200"
    Range("A2").Select
    Selection.NumberFormat = "#,##0.00 $"
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A1").Select
    Selection.Copy
    Range("C3").Select
    ActiveSheet.Paste
    Sheets.Add After:=ActiveSheet
End Sub

Pour arrêter l’enregistreur de la macro, il faut cliquer de nouveau sur le bouton en bas à gauche de votre fenêtre Excel.

Pour aller voir le code généré, vous pouvez taper directement Alt+F11. Vous pouvez également aller dans l’onglet Développeur (voir section) et cliquer sur le bouton Visual Basic.

La fenêtre du Visual Basic Editor va s’ouvrir. Votre code est stocké dans le Module1 du projet VBA.

Comme nous pouvons l’observer, Excel crée seul l’indentation. L’indentation est la tabulation sur une ligne. Elle simplifie la lecture du code. Visual Basic n’est pas sensible à l’indentation contrairement à d’autres langages de programmation. Les lignes en vert sont des lignes de commentaire. Tous les éléments se trouvant après une apastrophe ne sont pas lus par Visual Basic.

Comment créer une macro en VBA ?

Pour créer une macro à partir de zéro, rendez-vous directement dans l’éditeur de macro en tapant sur Alt+F11 ou en cliquant sur Visual Basic dans l’onglet Développeur (voir section). De là, faites un clic droit sur ThisWorkbook et demandez à insérer un nouveau module.

Un nouveau module VBA va se créer et vous pourrez y inscrire votre code. Vous pouvez également stocker votre programme dans Feuil1 ou ThisWorkbook. Ce sera notamment intéressant lorsque vous voudrez mettre un déclenchement automatique à votre macro. Par exemple, vous pourrez créer une macro qui se déclenchera à l’ouverture du classeur, à la modification de certaines cellules, à l’enregistrement du classeur,…

Nous allons créer ensemble votre premier programme. Inscrivez votre prénom dans la cellule A1 d’un onglet que vous nommerez Prénom. Dans le module créé précédemment, inscrivez le code suivant. Pour information, une macro commence toujours par Sub Nom_Macro() et se termine par End Sub.

Sub premiere_macro()

' Je déclare ma variable
Dim prenom As String

' Je récupère le prénom dans la cellule.
prenom = Sheets("Prénom").Range("A1").Value

' J'affiche un message
MsgBox ("Bonjour " & prenom & " ! Vous venez de créer votre premier programme.")

End Sub

Nous allons créer un bouton pour exécuter notre macro. Retournons dans notre onglet nouvellement créé et cliquons sur Insérer dans l’onglet Développeur. Il faut alors cliquer sur le premier bouton.

Avec la souris, formons un rectangle et dans la fenêtre qui s’ouvre, sélectionnons premiere_macro. Maintenant, vous pouvez cliquer sur le bouton. Un message apparait. Vous avez créé votre premier programme. Félicitations !

Comment faire apparaitre l’onglet Développeur dans Excel ?

L’onglet Développeur permet de faire apparaitre les différentes fonctionnalités en lien avec les macros VBA dans Excel. Pour l’afficher, il faut cliquer sur Fichier puis Options.

Ensuite, il faudra se rendre dans la section Personnaliser le ruban et cocher l’onglet Développeur.

Voilà, votre onglet Développeur est présent dans votre ruban Excel. Vous pouvez dès à présent utiliser l’ensemble des fonctionnalités liées aux macros et à VBA (édition, création de boutons,…).

Conclusion

Que sont les macros ? Des programmes écrits en VBA directement dans vos documents Excel. A quoi servent-elles ? A vous faire gagner un maximum de temps en automatisant vos tâches qui étaient réalisées manuellement. Comment en créer ? Via l’enregistreur ou directement dans le VBE.

A présent il ne vous reste plus qu’à imaginer le programme de rêve et à le créer. Vous trouverez d’innombrables ressources sur internet. Des ressources vont prochainement être mises en ligne sur le blog. Quels sont les sujets qui pourraient vous intéresser ? Dites le moi en commentaire.

4.9/5 - (17 votes)

Vous avez apprécié cet article ?

Pour me soutenir, cliquez sur cette publicité. Pas besoin d’acheter, un clic suffit.

Merci. 🤩

Annonces

Modèles Excel

+

Livret 

7 méthodes pour gagner 2H par semaine sur Excel

C’est gratuit 🤩

Les formations

Formations Excel

Parce que chacun devrait avoir les moyens de faire son travail sur Excel

Découvrez des formations accessibles, rapides et directement applicables.