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

Didacticiel pour débutant sur la rédaction de macros VBA dans Excel (et pourquoi apprendre) / Productivité

Les macros Excel peuvent vous faire gagner beaucoup de temps en automatisant les processus Excel fréquemment utilisés. Comment enregistrer une macro dans Excel 2016 Comment enregistrer une macro dans Excel 2016 Saviez-vous qu'il était possible d'automatiser des tâches répétitives dans Microsoft Excel à l'aide de macros? Nous allons vous montrer comment enregistrer une macro dans Excel 2016 pour gagner beaucoup de temps. Lire la suite . 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 à la gamme complète de fonctions et de 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 ajoute les ventes trimestrielles de chaque magasin et écrit ces totaux dans les cellules de la feuille de calcul (si vous n'êtes pas sûr de savoir 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 "). 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 éléments individuels 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 est 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 “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 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? Lire la suite . Dans cet exemple, nous utilisons une boucle For, qui est é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 dans VBA Utiliser les fonctions Range et Cellules dans Excel peut être très déroutant. Voici comment vous pouvez les utiliser de manières que vous n’auriez probablement jamais imaginées, avec l’aide de VBA Read More, qui est un type d’objet spécifique dans VBA. Quand on l'utilise de cette façon-Range (“C2: C51”) -Il dit à 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! Lire la suite . 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 ElseIf 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 feuille de calcul, vous souhaiterez consulter ce guide des instructions IF dans Excel. Lire la suite est satisfaite, elle complète 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 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 = 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 éléments constitutifs 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 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 En tant que fan de Microsoft, on peut au moins dire au sujet des produits MS Office: il est facile d’intégrer chacun d’entre eux… En savoir plus et afficher les informations de votre PC Comment afficher toutes les informations de votre PC en utilisant un simple script VBA Excel Comment afficher 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. Lire la suite .

.