Comment utiliser Visual Basic pour Application (VBA) dans Excel ?

Visual Basic pour Application (VBA) est un langage de programmation qui vous permet d’étendre les fonctionnalités d’Excel et d’automatiser des tâches répétitives. Avec VBA, vous pouvez créer des macros, des formulaires, des fonctions personnalisées et des applications interactives. Dans cet article, vous allez apprendre les bases de VBA dans Excel et comment l’utiliser pour réaliser des opérations simples ou complexes.

Comment accéder à VBA dans Excel ?

GetPaidStock.com 64886528e3bbe

Pour accéder à VBA dans Excel, vous devez activer l’onglet Développeur dans le ruban. Pour cela, suivez ces étapes :

  • Cliquez sur le bouton Fichier puis sur Options.
    tth img w10 app excel fichier
  • Dans la fenêtre Options Excel, cliquez sur Personnaliser le ruban.
    tth img w10 app excel fichier option perso ruban dev
  • Dans la liste des onglets principaux, cochez la case Développeur puis cliquez sur OK.

Vous verrez alors apparaître l’onglet Développeur dans le ruban. Cet onglet contient plusieurs outils liés à VBA, comme le bouton Visual Basic, le bouton Enregistrer une macro ou le bouton Insérer un contrôle.

tth img w10 app excel dev
tth img w10 app excel dev vba

Le bouton Visual Basic ouvre l’éditeur Visual Basic (VBE), dans lequel vous créez et modifiez le code VBA. Le bouton Enregistrer une macro génère automatiquement un code VBA reproduisant les actions que vous exécutez dans l’application. Le bouton Insérer un contrôle vous permet d’ajouter des éléments interactifs à votre feuille de calcul, comme des boutons, des cases à cocher ou des listes déroulantes.

Comment écrire du code VBA dans Excel ?

Pour écrire du code VBA dans Excel, vous devez utiliser l’éditeur Visual Basic (VBE). Pour l’ouvrir, cliquez sur le bouton Visual Basic dans l’onglet Développeur du ruban.

Le VBE se compose de plusieurs fenêtres :

tth img w10 app excel dev vba 1 1
  • La fenêtre Projet affiche la structure hiérarchique des objets contenant du code VBA. Par exemple, si vous avez un classeur nommé MonClasseur.xlsm avec deux feuilles nommées Feuil1 et Feuil2, vous verrez apparaître sous MonClasseur.xlsm les objets Feuil1 et Feuil2 ainsi qu’un objet nommé ThisWorkbook.
    tth img w10 app excel dev vba fenetre projet
  • La fenêtre Propriétés affiche les propriétés de l’objet sélectionné dans la fenêtre Projet. Par exemple, si vous sélectionnez l’objet Feuil1, vous verrez ses propriétés comme son nom (Name), sa couleur (Tab.Color), son code (CodeName), etc.
    tth img w10 app excel dev vba fenetre propriete
  • La fenêtre Code affiche le code VBA associé à l’objet sélectionné dans la fenêtre Projet. Par exemple, si vous sélectionnez l’objet Feuil1, vous verrez le code VBA qui s’exécute lorsque vous interagissez avec la feuille de calcul Feuil1.
    tth img w10 app excel dev vba fenetre code
  • La fenêtre Exécution affiche les résultats du code VBA ou les messages d’erreur. Par exemple, si vous utilisez la fonction MsgBox pour afficher un message à l’utilisateur, vous verrez le message apparaître dans la fenêtre Exécution.
    tth img w10 app excel dev vba fenetre

Pour écrire du code VBA, vous devez respecter certaines règles de syntaxe :

  • Chaque instruction doit se terminer par un saut de ligne ou par le caractère deux-points (:).
  • Les mots clés du langage VBA doivent être écrits en majuscules ou en minuscules, mais pas les noms des objets, des propriétés ou des méthodes, qui sont sensibles à la casse.
  • Les commentaires doivent être précédés du caractère apostrophe (‘) ou de Rem et doivent être écrits sur une ligne séparée ou après une instruction.
  • Les chaînes de caractères doivent être entourées de guillemets doubles (“).
  • Les opérateurs arithmétiques sont +, -, *, / et ^ (puissance).
  • Les opérateurs logiques sont And, Or, Not, Xor et Eqv.
  • Les opérateurs de comparaison sont =, <>, <, <=, > et >=.
  • Les constantes prédéfinies sont True, False, Null, Empty, Nothing et vbNullString.

Voici un exemple de code VBA qui affiche un message à l’utilisateur :

Sub Bonjour()
    ' Ceci est un commentaire
    MsgBox "Bonjour, je suis Bing !" ' Affiche un message
End Sub

Comment utiliser les fonctions de feuille de calcul Excel dans VBA ?

Vous pouvez utiliser la plupart des fonctions de feuille de calcul Excel dans vos instructions VBA. Pour cela, vous devez utiliser la syntaxe suivante :

Application.WorksheetFunction.NomDeLaFonction(argument1, argument2, ...)

Par exemple, si vous voulez utiliser la fonction SOMME pour calculer la somme des valeurs de la plage A1:A10, vous pouvez écrire :

Sub Somme()
    Dim resultat As Double ' Déclare une variable de type Double
    resultat = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Affecte à la variable le résultat de la fonction SOMME
    MsgBox resultat ' Affiche le résultat
End Sub

Vous pouvez également utiliser des fonctions personnalisées que vous créez vous-même en VBA. Pour cela, vous devez utiliser la syntaxe suivante :

Function NomDeLaFonction(argument1 As Type1, argument2 As Type2, ...) As TypeRetour
    ' Déclarations et instructions
    NomDeLaFonction = expression ' Affecte à la fonction le résultat à renvoyer
End Function

Par exemple, si vous voulez créer une fonction qui calcule le carré d’un nombre, vous pouvez écrire :

Function Carre(nombre As Double) As Double ' Déclare une fonction qui prend un nombre en argument et renvoie un nombre
    Carre = nombre * nombre ' Affecte à la fonction le carré du nombre
End Function

Vous pouvez ensuite utiliser cette fonction dans vos instructions VBA ou dans vos formules Excel. Par exemple :

Sub Test()
    Dim x As Double ' Déclare une variable de type Double
    x = 5 ' Affecte à la variable la valeur 5
    MsgBox Carre(x) ' Affiche le carré de x
End Sub

Comment créer des macros dans Excel ?

Une macro est un ensemble d’instructions VBA qui s’exécute en une seule fois. Vous pouvez créer des macros pour automatiser des tâches récurrentes ou complexes dans Excel. Il existe deux façons de créer des macros : en les enregistrant ou en les écrivant.

Enregistrer une macro

L’enregistrement d’une macro consiste à utiliser le bouton Enregistrer une macro dans l’onglet Développeur du ruban pour capturer les actions que vous effectuez dans Excel et les convertir en code VBA. C’est la méthode la plus simple et la plus rapide pour créer une macro, mais elle peut produire du code peu optimisé ou redondant.

Pour enregistrer une macro, suivez ces étapes :

  • Cliquez sur le bouton Enregistrer une macro dans l’onglet Développeur du ruban.
    tth img w10 app excel dev enregistrer macro
  • Dans la boîte de dialogue Enregistrer une macro, donnez un nom à votre macro, choisissez un raccourci clavier si vous le souhaitez, sélectionnez un emplacement où stocker votre macro (classeur actif, nouveau classeur ou classeur personnel) et écrivez une description si vous le souhaitez.
    tth img w10 app excel dev enregistrer macro
  • Cliquez sur OK pour commencer l’enregistrement.
  • Effectuez les actions que vous voulez automatiser dans Excel. Par exemple, si vous voulez créer une macro qui met en forme un tableau, sélectionnez le tableau, appliquez-lui un style, triez-le par ordre alphabétique, etc.
  • Cliquez sur le bouton Arrêter l’enregistrement dans l’onglet Développeur du ruban pour terminer l’enregistrement.

Vous pouvez ensuite exécuter votre macro en utilisant le raccourci clavier que vous avez choisi, en cliquant sur le bouton Macros dans l’onglet Développeur du ruban ou en utilisant le bouton Exécuter dans le VBE.

Écrire une macro

Écrire une macro consiste à utiliser le VBE pour taper directement le code VBA qui correspond aux actions que vous voulez automatiser. C’est la méthode la plus flexible et la plus puissante pour créer une macro, mais elle nécessite des connaissances en programmation.

Pour écrire une macro, suivez ces étapes :

  • Ouvrez le VBE en cliquant sur le bouton Visual Basic dans l’onglet Développeur du ruban.
    tth img w10 app excel dev vba
  • Dans la fenêtre Projet, sélectionnez l’objet où vous voulez stocker votre macro (classeur actif, nouveau classeur ou classeur personnel).
  • Dans la fenêtre Code, tapez le code VBA qui correspond aux actions que vous voulez automatiser. Par exemple, si vous voulez créer une macro qui met en forme un tableau, tapez le code suivant :
Sub FormaterTableau()
    ' Sélectionne le tableau
    Range("A1:D10").Select
    ' Applique un style au tableau
    Selection.Style = "Tableau 1"
    ' Trie le tableau par ordre alphabétique selon la colonne A
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A2:A10") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:D10")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Vous pouvez ensuite exécuter votre macro en utilisant le bouton Exécuter dans le VBE ou en lui attribuant un raccourci clavier ou un contrôle.

tth img w10 app excel dev vba test code

FAQ

Voici quelques questions fréquentes sur l’utilisation de VBA dans Excel :

Qu’est-ce que VBA et pourquoi l’utiliser ?

VBA est la version de Visual Basic livrée avec Microsoft Office. C’est un langage de programmation orienté objet qui utilise une syntaxe proche du langage naturel. VBA vous permet d’accéder aux objets, propriétés et méthodes d’Excel et de les manipuler à l’aide de code. Vous pouvez ainsi contrôler Excel de manière plus fine et plus puissante que par l’interface graphique.

L’utilisation de VBA présente plusieurs avantages :

  • Vous pouvez automatiser des tâches répétitives ou fastidieuses, comme le nettoyage de données, la mise en forme de tableaux, la création de graphiques, etc.
  • Vous pouvez personnaliser Excel selon vos besoins spécifiques, en ajoutant des fonctionnalités qui n’existent pas dans le logiciel ou en modifiant son comportement.
  • Vous pouvez interagir avec l’utilisateur à l’aide de boîtes de dialogue, de formulaires ou de messages personnalisés.
  • Vous pouvez intégrer Excel avec d’autres applications Office ou des sources de données externes, comme Outlook, Word, Access, SQL Server, etc.

Comment déboguer du code VBA dans Excel ?

Pour déboguer du code VBA dans Excel, vous pouvez utiliser les outils du VBE, comme les points d’arrêt, le pas à pas, la fenêtre Espion ou la fenêtre Locales. Ces outils vous permettent de contrôler l’exécution du code, de vérifier les valeurs des variables et de repérer les erreurs.

Comment protéger du code VBA dans Excel ?

Pour protéger du code VBA dans Excel, vous pouvez verrouiller le projet VBA avec un mot de passe. Pour cela, suivez ces étapes :

  • Ouvrez le VBE en cliquant sur le bouton Visual Basic dans l’onglet Développeur du ruban.
  • Dans la fenêtre Projet, faites un clic droit sur le nom du projet VBA et choisissez Propriétés du projet VBA.
  • Dans la boîte de dialogue Propriétés du projet VBA, cliquez sur l’onglet Protection.
  • Cochez la case Verrouiller le projet pour l’affichage et tapez un mot de passe puis confirmez-le.
  • Cliquez sur OK pour fermer la boîte de dialogue.
  • Enregistrez et fermez le classeur.

Comment exécuter une macro à l’ouverture ou à la fermeture d’un classeur ?

Pour exécuter une macro à l’ouverture ou à la fermeture d’un classeur, vous devez utiliser les événements Workbook_Open ou Workbook_BeforeClose. Pour cela, suivez ces étapes :

  • Ouvrez le VBE en cliquant sur le bouton Visual Basic dans l’onglet Développeur du ruban.
  • Dans la fenêtre Projet, sélectionnez l’objet ThisWorkbook sous le nom du classeur.
  • Dans la fenêtre Code, choisissez Workbook dans la liste déroulante Objet en haut à gauche.
  • Choisissez Open ou BeforeClose dans la liste déroulante Procédure en haut à droite.
  • Tapez le code VBA qui appelle la macro que vous voulez exécuter. Par exemple :
Private Sub Workbook_Open()
    ' Exécute la macro Bonjour à l'ouverture du classeur
    Bonjour
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' Exécute la macro AuRevoir à la fermeture du classeur
    AuRevoir
End Sub

Comment créer un formulaire dans Excel avec VBA ?

Pour créer un formulaire dans Excel avec VBA, vous devez utiliser le concepteur de formulaires du VBE. Pour cela, suivez ces étapes :

  • Ouvrez le VBE en cliquant sur le bouton Visual Basic dans l’onglet Développeur du ruban.
  • Dans la fenêtre Projet, faites un clic droit sur le nom du projet VBA et choisissez Insérer puis UserForm.
  • Une nouvelle fenêtre UserForm s’ouvre. Vous pouvez y ajouter des contrôles comme des étiquettes, des zones de texte, des boutons, etc. en les glissant depuis la boîte à outils.
  • Vous pouvez modifier les propriétés des contrôles dans la fenêtre Propriétés ou écrire du code VBA pour gérer leurs événements dans la fenêtre Code.
  • Pour afficher le formulaire, vous pouvez utiliser la méthode Show. Par exemple :
Sub AfficherFormulaire()
    ' Affiche le formulaire UserForm1
    UserForm1.Show
End Sub

Comment créer une fonction personnalisée dans Excel avec VBA ?

Pour créer une fonction personnalisée dans Excel avec VBA, vous devez utiliser la syntaxe suivante :

Function NomDeLaFonction(argument1 As Type1, argument2 As Type2, ...) As TypeRetour
    ' Déclarations et instructions
    NomDeLaFonction = expression ' Affecte à la fonction le résultat à renvoyer
End Function

Par exemple, si vous voulez créer une fonction qui calcule le carré d’un nombre, vous pouvez écrire :

Function Carre(nombre As Double) As Double ' Déclare une fonction qui prend un nombre en argument et renvoie un nombre
    Carre = nombre * nombre ' Affecte à la fonction le carré du nombre
End Function

Vous pouvez ensuite utiliser cette fonction dans vos instructions VBA ou dans vos formules Excel. Par exemple :

Sub Test()
    Dim x As Double ' Déclare une variable de type Double
    x = 5 ' Affecte à la variable la valeur 5
    MsgBox Carre(x) ' Affiche le carré de x
End Sub

Vous pouvez également utiliser des fonctions personnalisées que vous créez vous-même en VBA. Pour cela, vous devez utiliser la syntaxe suivante :

Function NomDeLaFonction(argument1 As Type1, argument2 As Type2, ...) As TypeRetour
    ' Déclarations et instructions
    NomDeLaFonction = expression ' Affecte à la fonction le résultat à renvoyer
End Function

Par exemple, si vous voulez créer une fonction qui calcule le carré d’un nombre, vous pouvez écrire :

Function Carre(nombre As Double) As Double ' Déclare une fonction qui prend un nombre en argument et renvoie un nombre
    Carre = nombre * nombre ' Affecte à la fonction le carré du nombre
End Function

Vous pouvez ensuite utiliser cette fonction dans vos instructions VBA ou dans vos formules Excel. Par exemple :

Sub Test()
    Dim x As Double ' Déclare une variable de type Double
    x = 5 ' Affecte à la variable la valeur 5
    MsgBox Carre(x) ' Affiche le carré de x
End Sub

ou

=Carre(A1) ' Calcule le carré de la valeur de la cellule A1

Conclusion

Vous avez appris dans cet article comment utiliser Visual Basic pour Application (VBA) dans Excel. Vous avez vu ce qu’est VBA et pourquoi l’utiliser, comment accéder à VBA dans Excel, comment écrire du code VBA dans Excel, comment utiliser les fonctions de feuille de calcul Excel dans VBA, comment créer des macros dans Excel avec VBA, comment créer des formulaires dans Excel avec VBA et comment créer des fonctions personnalisées dans Excel avec VBA. Parmi les fonctions personnalisées que vous pouvez créer avec VBA, il y a celle de faire une soustraction dans Excel. Vous pouvez maintenant exploiter la puissance de programmation de VBA pour personnaliser et automatiser Excel selon vos besoins.

Article précédentComment apprendre Python au niveau débutant ?
Article suivantComment se connecter à votre boîte mail Bouygues Telecom ?