Accéder au contenu principal

VBA Excel : Comment démarrer et faciliter votre travail

Apprenez à utiliser efficacement VBA dans Excel pour automatiser des tâches, créer des macros et améliorer vos compétences en matière de traitement des données à l'aide d'exemples pratiques et de bonnes pratiques.
Actualisé 15 janv. 2025  · 10 min de lecture

Visual Basic for Applications (VBA) dans Excel est un langage qui permet aux utilisateurs d'automatiser des tâches répétitives et d'améliorer les fonctionnalités d'Excel bien au-delà de ses caractéristiques standard. Ainsi, que vous soyez un débutant désireux d'accroître sa productivité ou un utilisateur avancé cherchant à rationaliser des flux de travail complexes, VBA est là pour vous faciliter la tâche.

Dans ce guide, j'expliquerai les concepts fondamentaux et avancés de VBA. Toutefois, si vous êtes novice en matière d'Excel, commencez par les principes fondamentaux d'Excel afin d'acquérir une base solide avant de passer à VBA.

Qu'est-ce que VBA dans Excel ?

Visual Basic for Applications (VBA) est un langage de programmation utilisé pour automatiser des tâches et améliorer la fonctionnalité des applications Microsoft Office. Vous pouvez l'utiliser avec Excel, Word, Access et d'autres programmes Office, bien qu'il soit probablement plus largement utilisé pour créer des macros personnalisées dans Excel, ce que nous allons examiner.

Personnellement, la première fois que j'ai utilisé VBA, c'était pour automatiser un rapport hebdomadaire qui prenait des heures à compiler manuellement. Avec seulement quelques lignes de code, j'ai réduit le processus à un simple clic sur un bouton et j'ai économisé beaucoup d'heures. Dès lors, je sais que investir un peu de temps pour le maîtriser rapporterait énormément en termes de productivité.

Faites progresser votre carrière avec Excel

Acquérir les compétences nécessaires pour optimiser Excel - aucune expérience n'est requise.

Commencez aujourd'hui gratuitement

Termes importants de VBA Excel

Avant de travailler avec VBA, vous devez en comprendre les principaux termes et concepts. Voici donc une liste des termes les plus utilisés que vous rencontrerez lorsque vous commencerez à automatiser des tâches et à élaborer des solutions personnalisées dans Excel.

  • Les modules sont les conteneurs du code VBA, où sont stockées les procédures et les fonctions.

  • Objets sont les éléments constitutifs de VBA. Ils représentent des éléments tels que les classeurs, les feuilles de calcul et les cellules.

  • Les procédures Les procédures sont les blocs de code qui exécutent des tâches spécifiques, souvent classées en sous-procédures ou en fonctions.

  • Les instructions sont les instructions d'une procédure qui indiquent à Excel (ou à Word ou à Access) les actions à effectuer.

  • Les variables stockent des données qui peuvent être utilisées et manipulées dans votre code.

  • Les opérateurs logiques comparent des valeurs et prennent des décisions en fonction des résultats. Ils comprennent des opérateurs tels que And,Or, et Not.

Débuter avec VBA dans Excel

Pour commencer à utiliser VBA, vous devez accéder à l'éditeur VBA. C'est ici que vous écrirez et modifierez votre code VBA. Voyons comment y parvenir :

Activation de l'onglet Développeur 

La première étape consiste à activer l'onglet Développeur, qui est souvent caché dans le ruban. Pour ce faire :

  • Cliquez avec le bouton droit de la souris n'importe où sur le ruban

Ruban dans Excel

Ruban dans Excel. Image par l'auteur.

  • Sélectionnez l'option Personnaliser le ruban... (Personnaliser le ruban).

personnaliser le ruban dans Excel

Personnalisez le ruban pour activer l'onglet Développeur. Image par l'auteur.

  • Une boîte de dialogue apparaît. Cochez l'option Developer et cliquez sur OK.

Sélectionner l'option développeur dans une boîte de dialogue et appuyer sur OK dans Excel

Sélectionner l'option Développeur. Image par l'auteur.

Vous pouvez maintenant voir un Développeur en haut du ruban.

Onglet Développeur dans Excel

L'onglet Développeur est activé sur le ruban. Image par l'auteur.

Ouverture de l'éditeur VBA 

Une fois que l'ongletDeveloper est activé, vous pouvez accéder à l'éditeur VBA. Pour ce faire, cliquez sur l' onglet Developer et sélectionnez Visual Basic dans les options. Vous pouvez également utiliser le raccourci clavier ALT + F11 pour ouvrir directement l'éditeur VBA.

Interface de l'éditeur VBA dans Excel

Editeur VBA. Image par l'auteur.

L'éditeur VBA peut sembler intimidant au premier abord, mais il est facile à utiliser. Comprenons ses quelques domaines clés :

  • Le volet Code est l'endroit où vous écrivez et modifiez votre code VBA.
  • L'explorateur de projets affiche une vue hiérarchique des projets et des modules de votre classeur.
  • Fenêtre Propriétés affiche les propriétés des objets sélectionnés afin de personnaliser leurs paramètres.

Interface de VBA dans Excel

Interface VBA dans Excel. Image par l'auteur.

Écrire du code VBA dans Excel

Maintenant que vous êtes familiarisé avec l'éditeur VBA, il est temps de commencer à écrire du code. Le code VBA se compose de différentes parties, telles que des sous-procédures et des fonctions. Il s'agit d'un ensemble d'instructions qui indiquent à Excel ce qu'il doit faire. Ne vous inquiétez pas si vous n'avez jamais programmé auparavant - je vous guiderai pas à pas. 

Écriture d'une sous-routine VBA

Avant d'écrire une macro, vous devez créer un environnement macro. Pour ce faire, suivez les étapes suivantes :

  • Dans l'éditeur VBA, sélectionnez Insérer > Module. Un nouveau module sera créé avec le nom par défaut, Module1.

Insérer un nouveau module en VBA

Sélectionnez Module sous l'onglet Insertion. Image par l'auteur.

  • Vous pouvez modifier le nom du module dans le champ Propriétés dans le volet Propriétés.

Renommer le module nouvellement créé en VBA dans Excel

Renommez le module VBA. Image par l'auteur.

Maintenant que vous savez comment configurer l'environnement de création d'une macro, créons ensemble notre première macro pour afficher un message. Par défaut, la fenêtre de code s'ouvre lors de la création du module. Si cela ne fonctionne pas dans votre cas, faites un clic droit sur le module que vous avez créé et cliquez sur View Code. La fenêtre de code apparaît, dans laquelle vous pouvez écrire vos macros.

Ici, je crée une macro pour afficher le message Hello, World!. Pour ce faire, j'écris le code suivant dans le panneau de code :

Sub ShowMessage()
    MsgBox "Hello, World!"
End Sub 

Ici :

  • Sub est le mot-clé pour une sous-routine, qui est un bloc de code qui exécute une tâche spécifique. En VBA, un sous-programme ne renvoie pas de valeur.

  • ShowMessage est le nom du sous-programme. Vous pouvez lui donner le nom que vous souhaitez, à condition qu'il respecte les conventions d'appellation de VBA (par exemple, pas d'espace, ne peut pas commencer par un chiffre).

  • () sont utilisés ici pour définir les paramètres du sous-programme. Comme aucun paramètre n'est nécessaire pour cette tâche, les parenthèses sont vides.

  • MsgBox est une fonction VBA intégrée qui affiche une boîte de message à l'écran.

  • End Sub indique la fin du sous-programme. Tout ce qui se trouve entre Sub et End Sub est le code qui sera exécuté lorsque la sous-routine sera appelée.

  • Les chaînes de texte en VBA sont placées entre guillemets doubles. Ici, nous voulons que la chaîne Hello, World! apparaisse dans la boîte de message.

Écriture d'une macro VBA dans un volet de code dans Excel

Écriture d'une macro. Image par l'auteur.

  • Il est maintenant temps d'exécuter le code. Utilisez la touche de raccourci F5. Si vous voulez le faire manuellement, allez sur l'onglet Developer et sélectionnez Macros. Frapper Exécutez.

Sélectionnez l'option Macros sous l'onglet Développeur et exécutez la macro dans Excel.

Sélectionnez l'option Macros sous l'onglet Développeur. Image de l'auteur.

Vous pouvez maintenant voir la boîte de message apparaître sur votre feuille Excel.

boîte de message dans Excel

Boîte de message. Image par l'auteur.

Comprendre les objets en VBA 

En VBA, les objets vous permettent de contrôler différents éléments au sein d'Excel et d'automatiser des tâches pour des flux de travail plus efficaces. Il y a trois objets clés : Cahier d'exercices,feuille de travail et plage. Comprenons chacun d'entre eux à l'aide d'un exemple concret.

L'objetWorkbook est tout fichier Excel actuellement ouvert. Il nous permet d'effectuer des actions telles que l'ajout de nouvelles feuilles ou l'enregistrement des feuilles existantes dans le classeur. Dans cet exemple, je souhaite ajouter une feuille à la feuille actuellement ouverte, puis l'enregistrer. Au début, j'avais Sheet1. Pour ajouter une autre feuille, j'écris le code suivant :

Sub AddSheetAndSaveWorkbook()
    ' Adds a new worksheet to the active workbook
   ActiveWorkbook.Sheets.Add
    
    ' Saves the workbook
    ActiveWorkbook.Save
End Sub

Ce code fonctionne exactement de la même manière que le code précédent, mais j'ai ajouté des commentaires ici. Les commentaires commencent par ' et n'affectent pas votre code. Nous les ajoutons uniquement pour rendre le code plus clair. 

Vous pouvez voir qu'une autre feuille, Sheet2, a été créée.

Ajouter et enregistrer une nouvelle feuille dans la feuille existante à l'aide de VBA dans Excel

Ajoutez et enregistrez une nouvelle feuille dans la feuille existante à l'aide de VBA. Image par l'auteur.

L'objet Feuille de calcul représente la feuille active dans Excel. Vous pouvez ainsi modifier ou manipuler la feuille active. Par exemple, je souhaite modifier le nom de la feuille active. Pour ce faire, j'introduis le code suivant :

Sub RenameActiveSheet()
    ' Renames the active sheet to "Sales Report".
    ActiveSheet.Name = "Sales Report"
End Sub

Code pour changer le nom de la feuille de calcul en utilisant VBA dans Excel

Modifier le nom de la feuille de calcul à l'aide de VBA. Image par l'auteur.

Le site Sheet1 a été renommé Sales Report.

Renommer la feuille de calcul à l'aide de VBA dans Excel

Renommer la feuille de calcul Excel à l'aide de VBA. Image par l'auteur.

L'objet Plage fait référence à un groupe spécifique de cellules ou à une seule cellule que nous pouvons manipuler selon les besoins.  Dans l'exemple suivant, je sélectionne une plage de cellules allant de F3 à I3 et je modifie la couleur d'arrière-plan. Pour ce faire, j'écris le code suivant :

Sub FormatRange()
    ' Selects the range from A1 to C6
    Range("F3:I3"). Select
    
    ' Changes the background color of the selected range to Green
    Selection.Interior.Color = RGB(101, 255, 143)
End Sub

Code pour changer la couleur de la plage sélectionnée en utilisant VBA dans Excel

Sélection d'une plage et modification de la couleur à l'aide de VBA. Image par l'auteur.

Vous pouvez voir la différence dans les résultats. 

Résultats de la modification de la couleur de la plage sélectionnée à l'aide de VBA dans Excel

Changement de couleur à l'aide de VBA dans Excel. Image par l'auteur.

Création de variables en VBA

Comme dans d'autres langages de programmation, les variables VBA stockent deux types de données principaux : les nombres et le texte. Pour les utiliser dans VBA, vous devez d'abord déclarer la variable en utilisant le mot-clé selon vos préférences, suivi du nom de la variable et du type de données.

Keyword variableName As DataType

Ici : 

  • Keyword peut être Dim, Static, Public, et Private.

  • variableName fait référence au nom choisi pour cette variable (sans espace).

  • As est utilisé pour déclarer le type de la variable.

  • DataType fait référence au type de variable, par exemple Integer.

Lorsque vous travaillez avec des variables, vous devez également respecter certaines règles :

  • La longueur doit être inférieure à 255 caractères.
  • Aucun espace n'est autorisé entre les caractères.
  • Le nom ne peut pas commencer par un chiffre.
  • N'utilisez pas de points dans le nom.

Type de données numériques

Les types de données numériques dans VBA sont utilisés pour stocker des valeurs numériques.

Type de données Stocké Fourchette de valeurs
Byte 1 octet Stocke des nombres entiers de 0 à 255
Entier 2 Byte Stocke les nombres entiers compris entre -32 768 et 32 767
Long 4 Bytes Stocke des nombres entiers plus grands, allant de -2 147 483 648 à 2 147 483 647
Célibataire 4 Bytes Enregistre les nombres décimaux en simple précision
Double 8 Bytes Enregistre les nombres décimaux en double précision
Monnaie 8 Bytes Stocke les nombres avec des décimales fixes
Variante (texte) Longueur du texte + 22 octets 0 à 2 milliards de caractères

Type de données non numériques

Les types de données non numériques dans VBA stockent des valeurs qui ne sont pas des nombres.

Type de données Stocké Fourchette de valeurs
Chaîne Longueur de la chaîne Enregistre le texte
Date 8 Bytes Enregistre la date et l'heure
Booléen 2 Bytes Magasins Vrai ou faux
Variante 16 Bytes Stocke n'importe quel type de données et est utilisé lorsque le type n'est pas connu à l'avance.

Automatiser des tâches avec des macros Excel VBA

Les macros sont essentiellement une série d'instructions créées en VBA pour effectuer des tâches répétitives. Une macro vous permet d'enregistrer une série d'actions, telles que le formatage de cellules, la copie de données ou l'exécution de calculs. Après avoir enregistré la macro, nous pouvons réappliquer ces actions d'un simple clic. Cela permet de gagner du temps, en particulier lorsque vous travaillez avec des ensembles de données ou des tâches volumineux.

Par exemple, si vous mettez souvent vos rapports en forme de la même manière, vous pouvez enregistrer une macro qui applique toutes les étapes de mise en forme nécessaires au lieu de le faire manuellement à chaque fois. Par la suite, vous pouvez exécuter cette macro pour formater de nouvelles données. Nous avons montré quelques exemples de base, mais imaginez que vous puissiez effectuer davantage de petites actions en un seul clic. Même si vous n'avez pas d'expérience en matière de codage, vous pouvez toujours automatiser les tâches de routine afin de rationaliser le flux de travail et de réduire les risques d'erreurs qui peuvent survenir lors de l'exécution manuelle d'actions répétitives.

Enregistrement d'une macro Excel 

Voyons comment vous pouvez enregistrer une macro pour modifier la mise en forme :

  • Accédez à la page Développeur > Enregistrer une macro Enregistrer une macro pour enregistrer une macro.
  • Une boîte de dialogue apparaît. Donnez un nom à votre macro, comme je l'ai fait pour FormatCells.
  • Attribuez un raccourci clavier si vous le souhaitez. Je l'ai assigné à Ctrl+S.
  • Cliquez sur OK POUR LANCER L'ENREGISTREMENT. pour lancer l'enregistrement.

Maintenant que la macro commence à enregistrer, effectuez les actions que vous souhaitez automatiser. Pour cet exemple, j'enregistre quelques modifications de formatage d'un simple tableau. Une fois que vous avez terminé, retournez à l' onglet Developer et cliquez sur le boutonStop Recording. Ci-dessous, vous pouvez voir la macro en action.

Enregistrement d'une macro à l'aide de VBA dans Excel. Gif par auteur.

Maintenant, si vous avez un autre ensemble de données dans une autre feuille et que vous voulez le même formatage dans cet ensemble de données, au lieu de reformater l'ensemble, appuyez sur la touche de raccourci que vous avez créée (dans mon cas, il s'agit de Ctrl+S). Sinon, allez sur sheet2 > Developer tab > Macros > Run pour le faire manuellement.

Utilisation de la macro Excel. Gif par auteur.

Modifier les macros Excel 

Après avoir enregistré une macro, vous pouvez même modifier ou personnaliser ses actions. Voici comment : 

  • Accédez à la page Développeur et cliquez sur Bases visuelles.
  • L'éditeur VBA apparaît. Maintenant, dans l'Explorateur de projet , recherchez le classeur dans lequel votre macro est stockée .
  • Développez le dossierModules, puis double-cliquez sur le module qui contient votre macro. La fenêtre de code affiche le code VBA de votre macro enregistrée.

Illustration du code exécuté lors de l'enregistrement d'une macro dans Excel

Code de la macro enregistrée dans Excel. Image par l'auteur.

Chaque ligne de code indique l'action que vous avez effectuée pendant l'enregistrement. A partir de là, vous pouvez modifier le code enregistré pour personnaliser la macro selon votre choix. Dans mon cas, j'ai défini Selection.Font.Bold sur False pour supprimer la mise en forme en gras. Une fois les modifications effectuées, enregistrez-les en cliquant sur le bouton d'enregistrement ou appuyez sur Ctrl+Set exécutez le code pour appliquer les modifications. Personnalisation de la macro en VBA dans Excel

Personnalisation de la macro Excel VBA. Image par l'auteur.

Après avoir exécuté votre macro, vous pouvez voir les résultats - les colonnes précédemment en gras ne le sont plus. 

Résultats de la macro éditée manuellement en VBA Excel

Utilisation d'une macro dans Excel. Image par l'auteur

Rédaction de macros Excel personnalisées 

Pour certaines tâches avancées, vous ne pouvez pas enregistrer de macro. Dans ce cas, vous devez écrire une macro à partir de zéro. Par exemple, je souhaite copier les données d'une feuille de calcul vers une autre. Voici comment j'écris une macro personnalisée :

  • Ouvrez l'éditeur VBA manuellement dans la première feuille ou appuyez sur Alt+F11.
  • Insérez un nouveau module.
  • Écrivez le code suivant dans le panneau de code.
Sub CopyData()
Sheets("Sheet1").Range("B1:E21").Copy Destination:=Sheets("Sheet2").Range("B1")
End Sub
  • Enregistrez la macro et appuyez sur Exécutez.

Vous pouvez maintenant constater que les données de la feuille 1 ont été copiées dans la feuille 2. ont été copiées dans la feuille 2.

Guide pas à pas sur l'écriture d'une macro personnalisée en VBA dans Excel

Rédaction d'une macro personnalisée à l'aide de VBA. Gif par auteur.

Réflexions finales 

De l'automatisation des tâches répétitives à la création de macros complexes, VBA ouvre un monde de possibilités dans Excel. Lorsque vous serez plus à l'aise avec les bases, entraînez-vous à écrire du code et explorez progressivement les fonctions plus avancées de VBA. N'oubliez pas que la clé de la maîtrise de VBA - ou de tout autre langage de programmation - réside dans une pratique régulière et une volonté d'expérimenter. Pour améliorer encore vos compétences, pensez à explorer ces ressources supplémentaires. Les cours Analyse des données dans Excel et Apprendre Excel sont excellents pour en savoir plus sur les fonctionnalités d'Excel. 

Si vous souhaitez étendre vos connaissances en matière de codage au-delà de VBA, le guide Comment devenir programmeur en 2024 vous propose une feuille de route. N'hésitez pas à le consulter si vous êtes intéressé par ce domaine. En outre, le cours Modélisation financière dans Excel est parfait pour les personnes intéressées par la création de modèles financiers détaillés.

Apprendre les bases d'Excel

Acquérir des compétences pour utiliser Excel de manière efficace - aucune expérience n'est requise.

Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Je suis un stratège du contenu qui aime simplifier les sujets complexes. J'ai aidé des entreprises comme Splunk, Hackernoon et Tiiny Host à créer un contenu attrayant et informatif pour leur public.

Questions fréquemment posées sur VBA Excel

Quel est l'objectif de l'instruction Explicit dans VBA ?

Explicit permet de s'assurer que toutes les variables sont explicitement déclarées avant d'être utilisées, ce qui réduit les bogues et rend votre code plus facile à maintenir.

Comment protéger mon code VBA par un mot de passe ?

Vous pouvez protéger votre code VBA en allant dans l'éditeur VBA > Outils > Propriétés du projet VBAP > onglet Protection. Vérifiez le projet Verrouiller le projet pour la visualisation et définissez un mot de passe.

Quelle est la différence entre ActiveWorkbook et ThisWorkbook dans VBA ?

ActiveWorkbook fait référence au classeur en cours de focalisation, qui peut ne pas contenir le code VBA. Thisworkbook fait référence au classeur dans lequel réside le code VBA, quel que soit le classeur actif.

Que sont les UserForms en VBA et comment les utiliser ?

UserForms sont des boîtes de dialogue personnalisées en VBA qui permettent aux utilisateurs de saisir des données. Ils peuvent être utilisés pour créer des formulaires interactifs pour la saisie de données, la sélection ou l'interaction avec l'utilisateur nécessitant une interface personnalisée.

Sujets

Apprenez Excel et VBA avec DataCamp

cours

Financial Modeling in Excel

3 hr
11.4K
Learn about Excel financial modeling, including cash flow, scenario analysis, time value, and capital budgeting.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

Voir plusVoir plus