Cursus
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.
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
, etNot
.
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. Image par l'auteur.
- Sélectionnez l'option Personnaliser le ruban... (Personnaliser le ruban).
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. Image par l'auteur.
Vous pouvez maintenant voir un Développeur en haut du ruban.
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.
Editeur VBA. Image par l'auteur.
Naviguer dans l'interface VBA
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 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.
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.
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
etEnd 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. 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. Image de l'auteur.
Vous pouvez maintenant voir la boîte de message apparaître sur votre feuille 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.
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
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 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
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.
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 êtreDim
,Static
,Public
, etPrivate
. -
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 exempleInteger
.
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.
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 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.
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.
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
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.