Qu’est-ce que VBA dans Excel ? (Basique à Avancé)

Qu’est-ce que VBA ?

VBA (Visual Basic for Applications) est un langage de programmation qui vous permet d’automatiser presque tout dans Excel. Avec VBA, vous pouvez vous référer aux objets Excel et utiliser les propriétés, méthodes et événements qui leur sont associés. Par exemple, vous pouvez créer un tableau croisé dynamique, insérer un graphique et afficher une boîte de message à l’utilisateur à l’aide d’une macro.

Le truc de fou c’est :

Pour toutes les tâches que vous effectuez manuellement en quelques minutes, VBA peut le faire en quelques secondes, d’un simple clic, avec la même précision. Même vous pouvez écrire des codes VBA qui peuvent s’exécuter automatiquement lorsque vous ouvrez un document, un classeur ou même à un moment précis.

Laissez-moi vous montrer un exemple concret :

Chaque matin, quand je vais au bureau, la première chose que je dois faire est de créer un tableau croisé dynamique pour les ventes du mois à ce jour et de le présenter à mon patron. Cela inclut les mêmes étapes, tous les jours. Mais quand j’ai réalisé que je pouvais utiliser VBA pour créer un tableau croisé dynamique et l’insérer en un seul clic, cela m’a fait gagner 5 minutes par jour.

Codes de macro pour créer un tableau croisé dynamique

Voici comment fonctionne VBA

VBA est un langage orienté objet et en tant que langage orienté objet, dans VBA, nous structurons nos codes de manière à utiliser des objets puis à définir leurs propriétés.

En termes simples, nous définissons d’abord l’objet, puis l’activité que nous voulons effectuer. Il existe des objets, des collections, des méthodes et des propriétés que vous pouvez utiliser dans VBA pour écrire votre code.

>Ne manquez pas ça<

Disons que vous voulez dire à quelqu’un d’ouvrir une boîte. Les mots que vous utiliserez seraient « Ouvrez la boîte ». C’est de l’anglais simple, n’est-ce pas ? Mais quand il s’agit de VBA et d’écrire une macro, ce sera :

Box.Open

Comme vous pouvez le voir, le code ci-dessus est démarré avec la boîte qui est notre objet ici, puis nous avons utilisé la méthode « Ouvrir » pour cela. Allons-y un peu plus précisément, disons si vous voulez ouvrir la boîte qui est de couleur ROUGE. Et pour cela le code sera :

Boxes(“Red”).Open

Dans le code ci-dessus, les boîtes sont la collection et open est la méthode. Si vous avez plusieurs boîtes, nous définissons une boîte spécifique ici. Voici une autre façon :

Box(“Red”).Unlock = True

Dans le code ci-dessus, les cases sont à nouveau la collection et Unlock est la propriété définie sur TRUE.

A quoi sert VBA dans Excel ?

Dans Excel, vous pouvez utiliser VBA pour différentes choses. Voici quelques-uns:

  • Entrer des données : Vous pouvez entrer des données dans une cellule, une plage de cellules. Vous pouvez également copier et coller des données d’une section à une autre.
  • Automatisation des tâches : vous pouvez automatiser les tâches qui vous demandent de passer beaucoup de temps. Le meilleur exemple que je puisse donner est d’utiliser une macro pour créer un tableau croisé dynamique.
  • Créer une fonction Excel personnalisée : Avec VBA, vous pouvez également créer une fonction personnalisée définie par l’utilisateur et l’utiliser dans la feuille de calcul.
  • Créer des compléments : Dans Excel, vous pouvez convertir vos codes VBA en compléments et les partager également avec d’autres.
  • Intégrer à d’autres applications Microsoft : Vous pouvez également intégrer Excel à d’autres applications Microsoft. Par exemple, vous pouvez entrer des données dans un fichier texte.

Principes de base de la programmation Excel

1. Procédure

Une procédure dans VBA est un ensemble de codes ou une seule ligne de code qui exécute une activité spécifique.

  1. SUB : la procédure Sub peut effectuer des actions mais ne renvoie pas de valeur (mais vous pouvez utiliser un objet pour obtenir cette valeur).
  2. Fonction : A l’aide de la procédure Function, vous créez votre fonction, que vous pouvez utiliser dans la feuille de calcul ou les autres procédures SUB et FUNCTION (Voir ceci : Fonction VBA ).

2. Variables et constantes

Vous avez besoin de variables et de constantes pour utiliser plusieurs fois des valeurs dans le code.

  • Variable : Une variable peut stocker une valeur, elle a un nom, vous devez définir son type de données et vous pouvez modifier la valeur qu’elle stocke. Comme son nom l’indique, « VARIABLE » n’a pas de valeur fixe. C’est comme une boîte de stockage qui est stockée dans le système.
  • Constante :‌ Une constante peut également stocker une valeur, mais vous ne pouvez pas modifier la valeur lors de l’exécution du code.

3. Types de données

Vous devez déclarer le type de données pour les VARIABLES et les CONSTANTES.

define data type

Lorsque vous spécifiez le type de données pour une variable ou une constante, cela garantit la validité de vos données. Si vous omettez le type de données, VBA applique le type de données Variant à votre variable (c’est le plus flexible), VBA ne devinera pas quel doit être le type de données.

Astuce : option VBA explicite

4. Objets, propriétés et méthodes

Visual Basic pour Applications est un langage orienté objet, et pour en tirer le meilleur parti ; vous devez comprendre les objets Excel.

Le classeur que vous utilisez dans Excel contient différents objets, et avec tous ces objets, il existe plusieurs propriétés auxquelles vous pouvez accéder et des méthodes que vous pouvez utiliser.

5. Événements

Chaque fois que vous faites quelque chose dans Excel, c’est un événement : saisissez une valeur dans une cellule, insérez une nouvelle feuille de calcul ou insérez un graphique. Ci-dessous la classification des événements en fonction des objets :

  1. Événements d’application : il s’agit d’événements associés à l’application Excel elle-même.
  2. Événements de classeur : il s’agit d’événements associés aux actions qui se produisent dans un classeur.
  3. Événements de feuille de calcul : ces événements sont associés à l’action qui se produit dans une feuille de calcul.
  4. Événements de graphique : ces événements sont associés aux feuilles de graphique (qui sont différentes des feuilles de calcul).
  5. Événements de formulaire utilisateur : ces événements sont associés à l’action qui se produit avec un formulaire utilisateur.
  6. Événements OnTime : les événements OnTime sont ceux qui peuvent déclencher du code à un moment donné.
  7. Événements OnKey : les événements OnKey sont ceux qui peuvent déclencher un code lorsqu’une touche particulière est enfoncée.

6. Portée

L’objet de plage est le moyen le plus courant et le plus populaire de faire référence à une plage dans vos codes VBA. Vous devez vous référer à l’adresse de la cellule, laissez-moi vous dire la syntaxe.

Worksheets(“Sheet1”).Range(“A1”)

7.Conditions

Comme tout autre langage de programmation, vous pouvez également écrire des codes pour tester des conditions dans VBA. Il vous permet de le faire de deux manières différentes.

  • IF THEN‌ ELSE ‌ : C’est une instruction IF que vous pouvez utiliser pour tester une condition, puis exécuter une ligne de code si cette condition est TRUE. Vous pouvez également écrire des conditions d’imbrication avec
  • SELEC‌T‌ CASE : dans le cas de sélection, vous pouvez spécifier une condition, puis différents cas de résultats à tester pour exécuter différentes lignes de code à exécuter. C’est un peu plus structuré que l’instruction IF.

8. Boucles VBA

Vous pouvez écrire des codes qui peuvent répéter et re-répéter une action dans VBA, et il existe plusieurs façons d’écrire du code comme celui-ci.

  • For Next : le meilleur ajustement pour utiliser For Next est lorsque vous souhaitez répéter un ensemble d’actions un nombre fixe de fois.
  • For Each Next : Il est parfait à utiliser lorsque vous souhaitez parcourir un groupe d’objets à partir d’une collection d’objets.
  • Boucle Do While : L’idée simple derrière la boucle Do While est d’effectuer une activité alors qu’une condition est vraie.
  • Faire jusqu’à la boucle : dans la boucle Faire jusqu’à, VBA exécute une boucle et continue de l’exécuter si la condition est FAUX.

9. Zone de saisie et boîte de message

  • Zone de saisie : La zone de saisie est une fonction qui affiche une zone de saisie à l’utilisateur et recueille une réponse.
  • Message Box : Message Box vous aide à afficher un message à l’utilisateur, mais vous avez la possibilité d’ajouter des boutons à la boîte de message pour obtenir la réponse de l’utilisateur.

10. Erreurs

Excel n’a pas de chance en ce qui concerne les erreurs de programmation, et vous devez les gérer, quoi qu’il arrive.

  1. Erreurs de syntaxe : C’est comme des fautes de frappe que vous faites en écrivant des codes, mais VBA peut vous aider en signalant ces erreurs.
  2. Erreurs de compilation : elles surviennent lorsque vous écrivez du code pour effectuer une activité, mais que cette activité n’est pas valide.
  3. Erreurs d’exécution : Une erreur RUNTIME se produit au moment de l’exécution du code. Il arrête le code et affiche la boîte de dialogue d’erreur.
  4. Erreur logique : Ce n’est pas une erreur mais une erreur lors de l’écriture du code et peut parfois vous donner des ennuis en les trouvant et en les corrigeant.

Écrire une macro (programme VBA) dans Excel

J’ai la ferme conviction qu’au début, lorsque quelqu’un commence à programmer dans Excel, HE / SHE devrait écrire de plus en plus de codes à partir de zéro. Plus vous écrivez de codes à partir de zéro, plus vous comprenez le fonctionnement de VBA.

Mais vous devez commencer par écrire des codes simples au lieu de vous lancer dans des codes complexes. C’est POURQUOI je ne veux pas que vous pensiez à quelque chose de complexe en ce moment.

Vous pouvez même écrire un code de macro pour créer un tableau croisé dynamique, mais pour le moment, je ne veux pas que vous réfléchissiez aussi loin. Réfléchissons à une activité que vous souhaitez effectuer dans votre feuille de calcul et vous pouvez écrire du code pour celle-ci.

  1. Accédez à l’ onglet Développeur et ouvrez Visual Basic Editor à partir du bouton « Visual Basic ».
    visual-basic-button
  2. Après cela, insérez un nouveau module à partir de la « Fenêtre du projet » (Clic droit ➢ Insérer ➢ Module).
    insert-a-new-module
  3. Après cela, venez dans la fenêtre de code et créez une macro avec le nom « Enter Done » (nous créons une procédure SUB), comme je l’ai ci-dessous.
    code-window
  4. À partir de là, vous devez écrire un code dont nous venons de parler ci-dessus. Attendez une seconde et pensez comme ceci : vous devez spécifier la cellule dans laquelle vous souhaitez insérer la valeur, puis la valeur que vous souhaitez saisir.
  5. Entrez la référence de la cellule, et pour cela, vous devez utiliser l’objet RANGE et y spécifier l’adresse de la cellule, comme ci-dessous :
    cell-reference-range-object
  6. Après cela, entrez un point, et au moment où vous ajoutez un point, vous aurez une liste de propriétés que vous pouvez définir et d’activités que vous pouvez faire avec la plage.
    enter-a-dot
  7. À partir de là, vous devez sélectionner la propriété « Valeur » et définir le texte que vous souhaitez insérer dans la cellule « A1 » et quand le faire, votre code ressemblera à quelque chose comme ci-dessous.
    select-value
  8. Enfin, au-dessus de la ligne de code, saisissez le texte (« ce code saisit la valeur « Done » dans la cellule A5). C’est un commentaire VBA que vous pouvez insérer pour définir la ligne de code que vous avez écrite.
    enter-the-text-above-line-code
Sub Enter_Done()
'this code enters the value “Done” in the cell A5
Range("A1").Value = "Done"
End Sub

Comprenons cela…

Vous pouvez diviser ce code en deux parties différentes.

  • Dans la PREMIÈRE partie, nous avons spécifié l’adresse de la cellule en utilisant l’objet RANGE. Et, pour faire référence à une cellule à l’aide d’un objet de plage, vous devez envelopper l’adresse de la cellule avec des guillemets doubles (vous pouvez également utiliser des crochets).
  • Dans la DEUXIÈME partie, nous avons spécifié la valeur à entrer dans la cellule. Ce que vous avez fait, c’est que vous avez défini la propriété value pour la cellule A5 en utilisant « .Value ». Après cela, la prochaine chose que vous avez spécifiée est la valeur par rapport à la propriété value . Chaque fois que vous définissez une valeur (s’il s’agit de texte), vous devez envelopper cette valeur entre guillemets doubles.

La meilleure façon d’apprendre VBA

Ici, j’ai répertorié certains des didacticiels les plus étonnants (pas dans une séquence particulière) qui peuvent vous aider à apprendre VBA en un rien de temps.

4. Travailler avec la plage et les cellules

11. Fonctions

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *