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

  • Michael Fisher
  • 0
  • 3786
  • 781
Publicité

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. Il est facile de se tromper avec 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, cela vaut la peine d'apprendre à créer des macros VBA..

Nous allons commencer avec 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 avec des suggestions contextuelles et des complétions automatiques vous aideront à faire fonctionner votre script rapidement.

Reste que VBA met du temps à s’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 de macros VBA.

Au lieu de cliquer sur votre feuille de calcul et d’enregistrer ces clics, vous pouvez accéder à l’ensemble des fonctions et fonctionnalité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 normale 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 pas d'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 beaucoup de personnes qui doivent faire la même chose dans Excel..

Regardons une simple macro VBA pour voir comment cela 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..

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

Sub StoreSales () Dim Sum1 As Devise Dim Sum2 As Devise Dim Sum3 As Devise Dim Sum4 As Devise pour chaque cellule de la plage ("C2: C51") Cell.Activate If IsEmpty (Cell), puis Quitter For If ActiveCell.Offset (0, -1) = 1 Alors Sum1 = Sum1 + Valeur.Calcul ElseIf ActiveCell.Offset (0, -1) = 2 Ensuite, Sum2 = Sum2 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 3 Puis Sum3 = Sum3 + Cell.Value ElseIf ActiveCell.Offset (0, -1) = 4 Alors Sum4 = Sum4 + Cell.Value End si plage de cellules suivante ("F2"). Valeur = plage de Sum1 ("F3"). Valeur = plage de Sum2 (" F4 "). Value = Sum3 Range (" F5 "). Value = 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 “Sous StoreSales ()”. Ceci définit un nouveau sous-nom appelé StoreSales.

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

À 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 “Faible.” Dim est la commande de VBA pour déclarer une variable.

Alors “Dim Sum1” crée une nouvelle variable appelée “Somme1.” 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 trouverez la liste complète dans les documents d’aide de Microsoft..

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

La déclaration “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 un “Comme” déclaration pour indiquer à Excel son type.

Démarrer 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 ne connaissez pas bien les boucles, consultez cette explication de boucles Do-While Comment fonctionnent les boucles Do-While en programmation informatique Comment fonctionnent les boucles Do-While en programmation informatique Les boucles sont l’un des premiers types de contrôle que vous apprendrez en programmation . Vous connaissez probablement les boucles while et for, mais que produit une boucle do-while? . Dans cet exemple, nous utilisons une boucle For, également couverte dans l'article.

Voici à quoi ressemble la boucle:

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

Cela indique à Excel de parcourir les cellules de la plage que nous avons spécifiée. Nous avons utilisé un objet Range Comprendre les cellules Excel par rapport aux fonctions Range dans VBA Comprendre les cellules Excel par rapport aux fonctions Range par VBA L'utilisation des fonctions Range et Cellules dans Excel peut être très déroutante. Voici comment vous pouvez les utiliser de manières que vous n’avez probablement jamais imaginées, avec l’aide de VBA, qui est un type d’objet spécifique dans VBA. Quand on l'utilise de cette façon-Range (“C2: C51”) -il indique à Excel que ces 50 cellules nous intéressent.

“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 dit à Excel de commencer la boucle depuis le début (en commençant par la cellule suivante).

Nous avons aussi cette déclaration: “Si IsEmpty (Cell), puis quitter pour.”

Pouvez-vous deviner ce que ça fait?

Remarque: Strictement parlant, utiliser une boucle While aurait pu être un meilleur choix. 4 Erreurs que vous pouvez éviter lors de la programmation de macros Excel avec VBA 4 Erreurs pouvant être évitées lors de la programmation de macros Excel avec VBA Le code et les macros simples sont la clé des superpuissances Microsoft Excel. Même les non-programmeurs peuvent facilement ajouter des fonctionnalités impressionnantes à leurs feuilles de calcul avec Virtual Basics for Applications (VBA). Il suffit d'éviter ces erreurs de débutant en programmation! . Cependant, dans un souci d’enseignement, j’ai décidé d’utiliser une boucle For avec une sortie..

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'énoncés conditionnels:

Si ActiveCell.Offset (0, -1) = 1 Alors Sum1 = Sum1 + Valeur Cell.Value ElfIf ActiveCell.Offset (0, -1) = 2 Alors Sum 2 = Sum2 + Cell.Value Valeur ActiveCell.Offset (0, -1) = 3 Alors Somme3 = Somme3 + Valeur Cellulaire ElseIf ActiveCell.Offset (0, -1) = 4 Alors Somme4 = Somme4 + Cell.Value Fin Si

Pour l'essentiel, vous pouvez probablement deviner le rôle de ces déclarations. Vous ne connaissez peut-être pas ActiveCell.Offset, bien que. “ActiveCell.Offset (0, -1)” dit à 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 déclarations dans l'ordre. Si l'instruction conditionnelle Comment utiliser les instructions IF dans Microsoft Excel Comment utiliser les instructions IF dans Microsoft Excel Que vous soyez un expert expérimenté ou un débutant en tableur, vous souhaiterez consulter ce guide des instructions IF dans Excel. est satisfait, il termine l'instruction Then. Sinon, il passe à la prochaine ElseIf. Si cela va jusqu'au bout et qu'aucune des conditions n'est remplie, aucune action ne sera entreprise.

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 et les conditions lui indiquent quoi faire avec cette cellule..

Écrire des valeurs de cellules

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 = Sum1 Plage ("F3"). Valeur = Sum2 Plage ("F4"). Valeur = Sum3 Plage ("F5"). Valeur = Sum4

Avec “.Valeur” et un signe égal, nous définissons 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 Sous avec “End Sub,” et 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:

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 serez capable d’é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 la référence Microsoft VBA Excel peut être utile si vous êtes prêt à y chercher une réponse technique..

Une fois que vous êtes familiarisé avec les bases, vous pouvez commencer à utiliser VBA pour des tâches telles que l'envoi d'e-mails à partir d'Excel, l'exportation de tâches Outlook. Comment exporter vos tâches Outlook vers Excel avec VBA Comment exporter vos tâches Outlook vers Excel avec VBA Que vous soyez ou non fan de Microsoft, on peut au moins dire au sujet des produits MS Office, à quel point il est facile d’intégrer chacun d’entre eux… et d’afficher les informations de votre PC Comment afficher toutes les informations de votre PC à l’aide d’un simple Script VBA Excel Comment visualiser toutes les informations de votre ordinateur à l'aide d'un script VBA Excel simple Excel et 10 minutes de travail vous donneront des informations plus détaillées que jamais sur votre ordinateur. Cela semble trop beau pour être vrai? C'est Windows, si vous savez l'utiliser. .




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.