Un didacticiel pour débutants sur l'écriture de macros VBA dans Excel (et pourquoi vous devriez apprendre)

Un didacticiel pour débutants sur l'écriture de macros VBA dans Excel (et pourquoi vous devriez apprendre)

Les macros Excel peuvent vous faire gagner beaucoup de temps en automatiser les processus Excel que vous utilisez souvent . Mais les macros sont en fait assez limitées. Il est facile de faire une erreur avec l'outil d'enregistrement et le processus d'enregistrement est maladroit.





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 régulièrement Excel, cela vaut la peine d'apprendre à créer des macros VBA.





Nous allons commencer par les bases.





Qu'est-ce que VBA ?

VBA est Visual Basic pour les 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 est toujours aussi fort).

Heureusement pour les non-programmeurs, VBA est très simple et l'interface que vous utilisez pour l'éditer offre beaucoup d'aide. La plupart des commandes que vous utiliserez, des suggestions contextuelles et des complétions automatiques, vous aideront à 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 sur 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. Il faut juste savoir les utiliser.

moteurs de recherche vidéo autres que youtube

Et une fois que vous êtes plus à l'aise avec VBA, vous pouvez 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'y a aucune ambiguïté.





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 de nombreuses personnes qui doivent faire les mêmes choses 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ù les employés travaillent et leurs ventes trimestrielles.

Cette macro ajoutera les ventes trimestrielles de chaque magasin et écrira 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é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 '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 subs ne le peuvent pas (si vous êtes familier avec d'autres langages de programmation, les subs sont l'équivalent des méthodes). Dans ce cas, nous n'avons pas besoin de renvoyer une valeur, nous utilisons donc un sous-ensemble.

À 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 traitera des devises, nous utilisons le type de données Currency.

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é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 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 d'itérer dans les cellules de la plage que nous avons spécifiée. Nous avons utilisé un Objet de plage , qui est un type d'objet spécifique en VBA. Lorsque nous l'utilisons de cette façon --- Range('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. « 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 instruction : « If IsEmpty(Cell) Then Exit For. »

Pouvez-vous deviner ce qu'il fait?

Noter: À proprement parler, l'utilisation d'une boucle While aurait peut-être été un meilleur choix . Cependant, par souci d'enseignement, j'ai décidé d'utiliser une boucle For avec une sortie.

framboise pi 3 modèle b vs b+

Instructions 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 n'êtes peut-être pas familier avec ActiveCell.Offset. 'ActiveCell.Offset(0, -1)' indique à Excel de regarder la cellule qui se trouve 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 la instruction conditionnelle est satisfait, il complète l'instruction Then. Sinon, il passe au prochain ElseIf. S'il va jusqu'au bout et qu'aucune des conditions n'est remplie, il ne prendra aucune mesure.

La combinaison de la boucle et des conditions est ce qui pilote 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 écrivons les résultats de nos calculs dans des cellules. Voici les lignes que nous utilisons pour cela :

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

Avec '.Value' et un signe égal, nous affectons à chacune de ces cellules la valeur de l'une de nos variables.

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

Lorsque nous exécutons la macro avec le Macro bouton dans le Développeur tab, on obtient nos sommes :

Assembler les blocs de construction de VBA dans Excel

Lorsque vous regardez pour la première fois 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 serez capable d'écrire des macros plus rapidement, plus précisément et avec beaucoup plus de puissance que vous ne pourriez jamais les enregistrer.

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

Une fois que vous êtes à l'aise avec les bases, vous pouvez commencer à utiliser VBA pour des choses comme envoyer des e-mails depuis Excel , exporter des tâches Outlook et afficher les informations de votre PC .

doit avoir un logiciel pour windows 10
Partager Partager Tweeter E-mail Voici pourquoi le FBI a émis un avertissement pour Hive Ransomware

Le FBI a émis un avertissement concernant une souche de ransomware particulièrement désagréable. Voici pourquoi vous devez vous méfier particulièrement du ransomware Hive.

Lire la suite
Rubriques connexes
  • Productivité
  • Tableur
  • Microsoft Excel
  • Microsoft Office 2016
  • Macro
  • Tutoriels de codage
A propos de l'auteur Puis Albright(506 articles publiés)

Dann est un consultant en stratégie de contenu et marketing qui aide les entreprises à générer de la demande et des prospects. Il blogue également sur la stratégie et le marketing de contenu sur dannalbright.com.

Plus de Dann Albright

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner