Accueil

Tutoriel du débutant sur la rédaction de macros VBA dans Excel (et pourquoi vous devriez apprendre)

Added 2018-07-03


Les macros Excel peuvent vous faire gagner beaucoup de temps en automatisant les processus Excel que vous utilisez souvent. . Mais les macros sont en réalité assez limitées. C’est facile d’utiliser l’outil d’enregistrement, et le processus d’enregistrement est compliqué.

Utiliser VBA pour créer des macros vous donne beaucoup plus de pouvoir. 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 régulièrement Excel, il est utile d’apprendre à créer des macros VBA.

Nous allons commencer 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 très bien).

Heureusement pour les non-programmeurs, VBA est très simple et l'interface que vous utilisez pour l'éditer offre une grande aide. La plupart des commandes que vous utiliserez, telles que les suggestions contextuelles et les complétions automatiques, vous aideront à faire fonctionner votre script rapidement.

Pourtant, VBA met un certain temps à 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 sur votre feuille de calcul et d’enregistrer ces clics, vous pouvez accéder à la gamme complète de fonctions et de fonctionnalités d’Excel. Vous devez juste savoir comment les utiliser.

Et une fois que vous serez plus à l'aise avec VBA, vous pourrez faire tout ce que vous pourriez faire dans une macro ordinaire en beaucoup moins de temps. Les résultats seront également plus prévisibles, comme vous le dites à Excel exactement  Que faire. Il n’ya aucune ambiguïté du tout.

Une fois que vous avez créé votre macro VBA, il est facile de l’enregistrer et de la partager afin que tout le monde puisse en profiter. Ceci est particulièrement utile lorsque vous travaillez avec un grand nombre de personnes qui doivent faire la même chose dans Excel.

Examinons une macro VBA simple pour voir comment elle fonctionne.

Un exemple de macro VBA dans Excel

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

Un débutant's Tutorial on Writing VBA Macros in Excel (And Why You Should Learn) example vba spreadsheet

Cette macro ajoute les ventes trimestrielles de chaque magasin et écrit ces totaux dans les cellules de la feuille de calcul (si vous ne savez pas exactement comment accéder à la boîte de dialogue VBA, consultez notre présentation VBA ici. ):


Sous StoreSales ()

Dim Sum1 As Currency
Dim Sum2 comme devise
Dim Sum3 comme devise
Dim Sum4 comme devise

Pour chaque cellule dans la plage ("C2: C51")
  Cell.Activate
  Si IsEmpty (Cell), puis quitter pour
  Si ActiveCell.Offset (0, -1) = 1 alors
    Sum1 = Sum1 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 2 Ensuite
    Sum2 = Sum2 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 3 Ensuite
    Sum3 = Sum3 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 4 Ensuite
    Sum4 = Sum4 + Cell.Value
Fin si
Cellule suivante
 
Plage ("F2"). Valeur = Somme1
Plage ("F3"). Valeur = Somme2
Plage ("F4"). Valeur = Sum3
Plage ("F5"). Valeur = Sum4
 
End Sub

Cela peut paraître long et compliqué, mais nous allons le décomposer afin que vous puissiez voir les différents éléments et en apprendre un peu plus sur les bases de VBA.

Déclarer le sous

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

Vous pouvez également définir des fonctions. La différence, c’est que les fonctions peuvent renvoyer des valeurs et que les sous-unités ne le peuvent pas (si vous connaissez bien les autres langages de programmation, les sous-programmes sont l’équivalent des méthodes). Dans ce cas, nous n’avons pas besoin de renvoyer de valeur, nous utilisons donc un sous-utilisateur.

À la fin du module, nous avons «End Sub», qui indique à Excel que nous en 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.

Donc, «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 dans VBA. Vous pouvez trouver le liste complète dans les documents d’aide de Microsoft .

Comme notre macro VBA va traiter avec des devises, nous utilisons le type de données Currency.

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

Démarrer une boucle For

Voici à quoi ressemble la boucle:


Pour chaque cellule dans la plage ("C2: C51")
[un tas de choses]
Cellule suivante

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

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

Pouvez-vous deviner ce que ça fait?

Déclarations si-alors-sinon

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


Si ActiveCell.Offset (0, -1) = 1 alors
  Sum1 = Sum1 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 2 Ensuite
  Sum2 = Sum2 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 3 Ensuite
  Sum3 = Sum3 + Cell.Value
  ElseIf ActiveCell.Offset (0, -1) = 4 Ensuite
  Sum4 = Sum4 + Cell.Value
Fin si

Pour l'essentiel, vous pouvez probablement deviner le rôle de ces déclarations. Cependant, vous ne connaissez peut-être pas ActiveCell.Offset. "ActiveCell.Offset (0, -1)" indique à Excel de regarder la cellule qui se trouve dans la colonne située à 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.

La combinaison de la boucle et des conditions est ce qui motive cette macro. La boucle indique à Excel de parcourir chaque cellule de la sélection, tandis que les conditions lui indiquent quoi faire avec cette cellule.

Écrire des valeurs de cellule

Enfin, nous devons écrire les résultats de nos calculs dans des cellules. Voici les lignes que nous utilisons pour faire cela:


Plage ("F2"). Valeur = Somme1
Plage ("F3"). Valeur = Somme2
Plage ("F4"). Valeur = Sum3
Plage ("F5"). Valeur = Sum4

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

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

Quand on lance la macro avec le Les macros  bouton dans le Développeur  onglet, nous obtenons nos sommes:

Un débutant's Tutorial on Writing VBA Macros in Excel (And Why You Should Learn) vba final e1529502796437

Rassembler les composants de base de VBA dans Excel

Lorsque vous examinez pour la première fois la macro VBA ci-dessus, cela 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 construirez votre vocabulaire VBA et pourrez écrire des macros plus rapidement, avec plus de précision et avec beaucoup plus de puissance que vous ne pourriez jamais les enregistrer.

Lorsque vous êtes bloqué, une recherche Google est un moyen rapide d'obtenir des réponses à vos questions VBA. Et Microsoft Excel référence VBA  Cela peut être utile si vous êtes prêt à creuser pour trouver une réponse technique.






Nuage de tags

Choix de L'éditeur


Thomas Becket

Je suis un écrivain indépendant qui couvre la programmation et les logiciels.
Je suis étudiant en informatique et je m'intéresse à la programmation, aux logiciels et à la technologie
Gadgets technologiques et critiques 2019