Écrivez votre première macro VBA dans Excel
L’écriture de macros peut rendre les choses beaucoup plus faciles dans Excel. Et en prime, vous impressionnez tout le monde lorsque vous supprimez du jargon technique comme « J’ai écrit une macro pour faire ça » . C’est un gagnant-gagnant!
Cet article vous guidera étape par étape dans le processus d’écriture de votre propre macro.
Étape 1 : Assurez-vous que l’onglet Développeur est disponible
Vérifiez le ruban en haut de votre classeur Excel et voyez si l’ onglet Développeur est disponible :

S’il n’est pas disponible pour vous, comme moi, vous devrez le corriger.
Accédez à Fichier > Options :


Sélectionnez Personnaliser le ruban , cochez la case Développeur et cliquez sur OK .

Vous devriez maintenant voir l’ onglet Développeur :

Étape 2 : Créer les exemples de données pour ajouter deux colonnes de nombres
Pour cet exemple, notre macro additionnera les nombres de deux colonnes. Entrez quelques exemples de données comme ceci :

Si vous les ajoutiez à l’aide de formules Excel, vous feriez probablement quelque chose comme ceci :
Option 1 : = Somme(A2, B2)

Option 2 : = A2 + B2

Ensuite, vous feriez glisser cette formule jusqu’à la ligne 4 pour remplir le reste des lignes, et vous vous retrouveriez avec quelque chose comme ceci :

Cependant, si vous finissiez par ajouter plus de valeurs aux colonnes First Number et Second Number , vous devrez vous rappeler de faire glisser la formule vers le bas pour calculer pour cette ligne :

Dans les étapes suivantes, vous allez créer une macro à la place pour ce faire, et voir si cela facilite les choses.
Effacez votre colonne de total, de sorte que vos exemples de données ressemblent de nouveau à ceci :

Étape 3 : créer un module dans VBA
Sélectionnez l’ onglet Développeur :

Sélectionnez Visual Basic :

Avec la fenêtre Microsoft Visual Basic pour Applications ouverte, sélectionnez Insérer > Module :

Un nom comme Module1 sera automatiquement donné à ce module :

Vous pouvez renommer le module dans le volet des propriétés. Supprimez la valeur Module1 et renommez-la en autre chose. J’ai choisi Exemple pour le nom de mon module :

Vous avez maintenant un module qui peut être utilisé pour écrire votre macro.
Étape 4 : écrivez la macro
Faites un clic droit sur votre nouveau module, et sélectionnez Afficher le code :

Dans l’éditeur de code qui s’ouvre, ajoutez ce qui suit pour créer une macro :
Sub AjouterDeuxNombres()
End Sub
Il n’y a pas encore de logique ajoutée à cette macro, mais cela crée une macro appelée AddTwoNumbers :

Entre la première et la dernière ligne se trouve la logique de notre macro.
Voici la logique complète que vous pouvez utiliser pour créer la macro afin d’ajouter les deux colonnes :
Sub AddNumbers()
'Déclare les variables
Dim row_count As Integer
Dim row_count_without_header As Integer
Dim row_iterator As Integer
Dim row_number As Integer
'Obtenir le nombre total de lignes
row_count = Sheet1.Cells(Sheet1.Rows.Count, 1 ). End (xlUp).Row
'Obtenir le nombre total de lignes sans en-tête
row_count_without_header = row_count - 1
'Itérer/boucler sur les lignes
For row_iterator = 1 To row_count_without_header
row_number = row_iterator +1
Sheet1.Cells(row_number, 3 ) = Sheet1.Cells(row_number, 1 ) + Sheet1.Cells(row_number, 2 ) Itérateur
suivant End Sub
Remarques :
- Tout d’abord, déclarez les variables et leurs types de données que vous utiliserez. Dans cet exemple, j’ai utilisé quatre variables différentes.
- La variable row_count examine la première colonne pour voir le nombre total de lignes dans cette colonne. Cela nous aide à savoir combien de lignes devront être ajoutées. Je fais référence à Sheet1 dans le cas d’utilisation, car c’est ainsi que la feuille est nommée pour mes exemples de données. (Remarque : la logique utilisée pour obtenir cette valeur est très pratique. Gardez cela à l’esprit pour une utilisation future)
- La variable row_count_without_header soustrait un de row_count pour nous donner le nombre réel de lignes que nous devons additionner, puisque la première colonne est l’en-tête et n’a pas besoin d’être additionnée.
- La formule Sheet1.Cells prend deux arguments — le premier est le Row Index et le second est le Column Index . Au fur et à mesure que nous parcourons les lignes, nous incrémentons le row_number à chaque fois. Comme vous pouvez le voir dans la boucle For/Next , vous définissez la valeur de la colonne 3 égale à la valeur des colonnes 1 et 2 additionnées.
La macro complète :

Vous pouvez maintenant fermer l’éditeur VBA pour revenir à la vue principale d’Excel :

Étape 5 : Exécutez la macro
Sous l’ onglet Développeur , sélectionnez Macros :

Sélectionnez la macro AddTwoNumbers que vous venez de créer, puis cliquez sur Exécuter :

Regardez maintenant vos exemples de données et vous pouvez voir que la colonne Total est maintenant remplie de données ; notez également que la barre de formule est remplie avec la valeur, pas une formule Excel :

Notre macro a additionné les deux colonnes avec succès.
Étape 6 : Tester la macro
Testons quelques scénarios avec notre macro pour voir à quel point cela pourrait être utile.

Ajoutez une ligne supplémentaire comme celle-ci à vos exemples de données, puis exécutez à nouveau la macro. Ça devrait ressembler à ça:

Supprimez maintenant la valeur Total pour les deux lignes du milieu…

…et réexécutez la macro. Ça devrait ressembler à ça:

Votre macro vous a permis d’être très flexible maintenant. Vous n’avez pas à vous demander si la formule Excel a été correctement copiée ou à paniquer si la formule a été supprimée ou corrompue. Vous pouvez exécuter cette macro à tout moment et elle corrigera et/ou mettra à jour cette colonne Total .
Étape 7 : Enregistrez votre classeur en tant que fichier prenant en charge les macros
Lors de l’enregistrement de ce classeur, enregistrez-le en tant que fichier .xlsm (Excel Macro-Enabled Workbook) pour permettre aux macros de s’exécuter dans le fichier :

Et c’est tout!
Vous pouvez maintenant dire à tout le monde que vous savez comment écrire une macro. J’espère que cela vous incitera à rechercher des moyens d’automatiser une partie de votre travail Excel à l’avenir.