Tutoriel Pour Débutants Sur L'écriture De Macros VBA Dans Excel (et ...

Les macros Excel peuvent vous faire économiser une tonne de temps en automatisant les processus Excel que vous utilisez souvent. Mais les macros sont en fait assez limitées. Il est facile de se tromper avec l’outil d’enregistrement et le processus d’enregistrement est délicat.

L’utilisation de VBA pour créer des macros vous donne beaucoup plus de puissance. Vous pouvez dire à Excel exactement quoi faire et comment le faire. Vous avez également accès à beaucoup plus de fonctions et de capacités. Si vous utilisez Excel régulièrement, cela vaut la peine d’apprendre à créer des macros VBA.

Table des matières Qu’est-ce que VBA? Les avantages des macros VBA dans Excel Un exemple d’une macro VBA dans Excel Déclarer le sous Déclaration de variables Démarrage d’une boucle For Déclarations If-Then-Else Écriture de valeurs de cellule Assembler les blocs de construction de VBA dans Excel

Commençons par les bases.

Qu’est-ce que VBA?

VBA est Visual Basic pour Applications, un langage de programmation que vous pouvez utiliser dans de nombreuses applications Microsoft. Visual Basic est un langage de programmation et VBA en est la version spécifique à l’application. (Microsoft a abandonné Visual Basic en 2008, mais VBA fonctionne toujours bien).

Heureusement pour les non-programmeurs, VBA est très simple, et l’interface que vous utilisez pour le modifier offre beaucoup d’aide. La plupart des commandes que vous utiliserez sont des suggestions contextuelles et des compléments automatiques, pour vous aider à faire fonctionner votre script rapidement.

Pourtant, VBA prend un certain temps pour s’y habituer.

Les avantages des macros VBA dans Excel

Si VBA est plus difficile que d’enregistrer une macro, pourquoi l’utiliseriez-vous? La réponse courte est que vous obtenez beaucoup plus de puissance des macros VBA.

Au lieu de cliquer autour de votre feuille de calcul et d’enregistrer ces clics, vous pouvez accéder à la gamme complète de fonctions et de capacités d’Excel. Vous avez juste besoin de savoir comment les utiliser.

Et une fois que vous êtes plus à l’aise avec VBA, vous pouvez faire tout ce que vous pourriez faire dans une macro régulière en beaucoup moins de temps. Les résultats seront également plus prévisibles, comme vous le dites à Excel exactement Que faire. Il n’y a aucune ambiguïté.

Une fois que vous avez créé votre macro VBA, il est facile de l’enregistrer et de la partager pour que n’importe qui d’autre puisse en profiter. Cela est particulièrement utile lorsque vous travaillez avec de nombreuses personnes qui doivent faire les mêmes choses dans Excel.

Regardons une simple macro VBA pour voir comment cela fonctionne.

Un exemple d’une macro VBA dans Excel

Regardons une simple macro. Notre feuille de calcul contient les noms des employés, le numéro du magasin où les employés travaillent et leurs ventes trimestrielles.

Exemple de feuille de calcul VBA pour un débutant sur l'écriture de macros VBA dans Excel (et pourquoi vous devriez apprendre)

Cette macro ajoutera les ventes trimestrielles de chaque magasin et inscrira ces totaux dans les cellules de la feuille de calcul (si vous ne savez pas comment accéder à la boîte de dialogue VBA, consultez notre procédure pas à pas VBA ici):

Sub StoreSales() Dim Sum1 As Currency Dim Sum2 As Currency Dim Sum3 As Currency Dim Sum4 As Currency For Each Cell In Range("C2:C51") Cell.Activate If IsEmpty(Cell) Then Exit For If ActiveCell.Offset(0, -1) = 1 Then Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 2 Then Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 3 Then Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 4 Then Sum4 = Sum4 + Cell.Value End If Next Cell Range("F2").Value = Sum1 Range("F3").Value = Sum2 Range("F4").Value = Sum3 Range("F5").Value = Sum4 End Sub

Cela peut sembler long et compliqué, mais nous allons le détailler afin que vous puissiez voir les éléments individuels et en apprendre un peu sur les bases de VBA.

Déclarer le sous

Au début du module, nous avons «Sub StoreSales ()». Cela définit un nouveau sous appelé StoreSales.

Vous pouvez également définir des fonctions – la différence est que les fonctions peuvent renvoyer des valeurs, et les sous-marins ne le peuvent pas (si vous êtes familier avec d’autres langages de programmation, les sous-marins sont l’équivalent des méthodes). Dans ce cas, nous n’avons pas besoin de renvoyer de valeur, nous utilisons donc un sous.

À la fin du module, nous avons «End Sub», qui indique à Excel que nous avons terminé avec cette macro VBA.

Déclaration de variables

Les premières lignes de code de notre script commencent toutes par «Dim». Dim est la commande de VBA pour déclarer une variable.

Ainsi, « Dim Sum1 » crée une nouvelle variable appelée « Sum1 ». Cependant, nous devons indiquer à Excel de quel type de variable il s’agit. Nous devons choisir un type de données. Il existe de nombreux types de données différents dans VBA – vous pouvez trouver le liste complète dans les documents d’aide de Microsoft.

Étant donné que notre macro VBA va traiter des devises, nous utilisons le type de données Devise.

L’instruction «Dim Sum1 As Currency» indique à Excel de créer une nouvelle variable de devise appelée Sum1. Chaque variable que vous déclarez doit avoir une instruction « As » pour indiquer à Excel son type.

Démarrage d’une boucle For

Les boucles sont parmi les choses les plus puissantes que vous puissiez créer dans n’importe quel langage de programmation. Si vous n’êtes pas familier avec les boucles, consultez cette explication des boucles Do-While. Dans cet exemple, nous utilisons une boucle For, qui est également traitée dans l’article.

Voici à quoi ressemble la boucle:

For Each Cell in Range("C2:C51") [a bunch of stuff] Next Cell

Cela indique à Excel de parcourir les cellules dans la plage que nous avons spécifiée. Nous avons utilisé un objet Range, qui est un type d’objet spécifique dans VBA. Lorsque nous l’utilisons de cette façon – Plage («C2: C51») – cela indique à Excel que nous sommes intéressés par ces 50 cellules.

« Pour chaque » indique à Excel que nous allons faire quelque chose avec chaque cellule de la plage. La «cellule suivante» vient après tout ce que nous voulons faire et indique à Excel de démarrer la boucle depuis le début (en commençant par la cellule suivante).

Nous avons également cette déclaration: « Si IsEmpty (Cell) Alors, quittez pour. »

Pouvez-vous deviner ce que cela fait?

Remarque: À strictement parler, l’utilisation d’une boucle While aurait pu être un meilleur choix. Cependant, pour des raisons d’enseignement, j’ai décidé d’utiliser une boucle For avec une sortie.

Déclarations If-Then-Else

Le cœur de cette macro particulière se trouve dans les instructions If-Then-Else. Voici notre séquence d’instructions conditionnelles:

If ActiveCell.Offset(0, -1) = 1 Then Sum1 = Sum1 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 2 Then Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 3 Then Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset(0, -1) = 4 Then Sum4 = Sum4 + Cell.Value End If

Pour la plupart, vous pouvez probablement deviner ce que font ces déclarations. Cependant, vous ne connaissez peut-être pas ActiveCell.Offset. « ActiveCell.Offset (0, -1) » indique à Excel de regarder la cellule qui est une colonne à gauche de la cellule active.

Dans notre cas, cela indique à Excel de consulter la colonne du numéro de magasin. Si Excel trouve un 1 dans cette colonne, il prend le contenu de la cellule active et l’ajoute à Sum1. S’il trouve un 2, il ajoute le contenu de la cellule active à Sum2. Etc.

Excel passe en revue toutes ces instructions dans l’ordre. Si l’instruction conditionnelle est satisfaite, elle termine l’instruction Then. Sinon, il passe au prochain ElseIf. S’il parvient à son terme et qu’aucune des conditions n’est remplie, il ne prendra aucune mesure.

La combinaison de la boucle et des conditions conditionne cette macro. La boucle indique à Excel de parcourir chaque cellule de la sélection, et les conditions lui indiquent quoi faire avec cette cellule.

Écriture de valeurs de cellule

Enfin, nous arrivons à écrire les résultats de nos calculs dans les cellules. Voici les lignes que nous utilisons pour ce faire:

Range("F2").Value = Sum1 Range("F3").Value = Sum2 Range("F4").Value = Sum3 Range("F5").Value = Sum4

Avec «.Value» et un signe égal, nous définissons chacune de ces cellules à la valeur d’une de nos variables.

Et c’est tout! Nous indiquons à Excel que nous avons terminé d’écrire ce sous-programme avec «End Sub» et que la macro VBA est terminée.

Lorsque nous exécutons la macro avec le Macros bouton dans le Développeur onglet, nous obtenons nos sommes:

Tutoriel pour débutants sur l'écriture de macros VBA dans Excel (et pourquoi vous devriez apprendre) vba final e1529502796437

Assembler les blocs de construction de VBA dans Excel

Lorsque vous regardez la macro VBA ci-dessus, elle semble assez complexe. Mais après l’avoir décomposé en ses éléments constitutifs, la logique devient claire. Comme tout langage de script, il faut du temps pour s’habituer à la syntaxe de VBA.

Mais avec de la pratique, vous développerez votre vocabulaire VBA et pourrez écrire des macros plus rapidement, plus précisément et avec beaucoup plus de puissance que vous ne pourrez jamais les enregistrer.

Lorsque vous êtes bloqué, l’exécution d’une recherche Google est un moyen rapide d’obtenir des réponses à vos questions VBA. Et Référence VBA Excel de Microsoft peut être utile si vous êtes prêt à fouiller pour trouver une réponse technique.

Une fois que vous maîtrisez les bases, vous pouvez commencer à utiliser VBA pour des choses comme l’envoi d’e-mails depuis Excel, l’exportation de tâches Outlook et l’affichage des informations de votre PC.

Tag » Apprendre Macro Debutant