Le meilleur guide VBA (pour les débutants) dont vous aurez besoin

La plate-forme de programmation VBA(VBA programming) qui s'exécute sur presque tous les produits Microsoft Office est l'un des outils les plus puissants que quiconque puisse utiliser pour améliorer son utilisation de ces produits.

Ce guide VBA pour débutants vous montrera comment ajouter le menu Développeur à votre application (Developer)Office , comment accéder à la fenêtre de l'éditeur VBA et comment fonctionnent les instructions et boucles (VBA)VBA de base afin que vous puissiez commencer à utiliser VBA dans Excel , Word , Powerpoint , Outlook et OneNote .

Ce guide VBA utilise la dernière version des produits (VBA)Microsoft Office . Si vous avez une version antérieure, vous remarquerez peut-être quelques légères différences par rapport aux captures d'écran.

Comment activer et utiliser l'éditeur VBA(How To Enable & Use The VBA Editor)

Dans tous les produits Office utilisés dans ce guide, vous remarquerez peut-être que vous ne disposez pas du menu Développeur référencé. (Developer)Le menu développeur n'est disponible que dans Excel , Word , Outlook et Powerpoint . OneNote n'offre pas d'outil pour modifier le code VBA depuis l'intérieur de l'application, mais vous pouvez toujours faire référence à l' (VBA)API OneNote(OneNote API) pour interagir avec OneNote à partir d'autres programmes Office

Vous apprendrez comment procéder dans notre prochain guide VBA avancé .(Advanced VBA)

  • Pour activer le menu Développeur dans n'importe quel produit bureautique, sélectionnez le menu (Developer)Fichier(File) , puis sélectionnez Options dans le menu de navigation de gauche. 
  • Vous verrez une fenêtre contextuelle du menu Options . Sélectionnez Personnaliser le ruban(Customize Ribbon) dans le menu de navigation de gauche.

La liste de gauche comprend tous les menus et commandes de menu disponibles dans cette application Office . La liste à droite sont ceux qui sont actuellement disponibles ou activés.

  • Vous devriez voir Développeur(Developer) dans la liste de droite, mais il ne sera pas activé. Cochez simplement(Just) la case pour activer le menu Développeur .(Developer)

  • Si vous ne voyez pas Développeur(Developer) disponible sur la droite, modifiez la gauche Choisir les commandes(Choose commands) de la liste déroulante en Toutes les commandes(All Commands) . Recherchez Développeur(Developer) dans la liste et sélectionnez Add>> au centre pour ajouter ce menu au ruban(Ribbon) .
  • Sélectionnez OK lorsque vous avez terminé.
  • Une fois le menu Développeur(Developer) actif, vous pouvez revenir à la fenêtre principale de votre application et sélectionner Développeur(Developer) dans le menu supérieur. 
  • Sélectionnez ensuite Afficher le code(View Code) dans le groupe Contrôles(Controls) du ruban pour ouvrir la fenêtre de l'éditeur VBA .

  • Cela ouvrira la fenêtre de l'éditeur VBA où vous pourrez taper le code que vous apprendrez dans les prochaines sections.

  • Essayez d'ajouter le menu Développeur(Developer) à quelques-unes des applications Office que vous utilisez quotidiennement. Une fois que vous êtes à l'aise pour ouvrir la fenêtre de l'éditeur VBA , passez à la section suivante de ce guide.

Conseils généraux de programmation VBA pour les débutants(General VBA Programming Tips for Beginners)

Vous remarquerez que lorsque l' éditeur VBA s'ouvre, les options de navigation dans le panneau de gauche sont différentes d'une application Office à l'autre.

En effet, les objets disponibles dans lesquels vous pouvez placer du code VBA dépendent des objets présents dans l'application. Par exemple, dans Excel , vous pouvez ajouter du code VBA à des objets de classeur ou de feuille. Dans Word , vous pouvez ajouter du code VBA aux documents. (VBA)Dans Powerpoint , uniquement aux modules.

Alors, ne soyez pas surpris par les différents menus. La structure et la syntaxe du code VBA sont les mêmes dans toutes les applications. (VBA)La seule différence réside dans les objets que vous pouvez référencer et les actions que vous pouvez effectuer sur ces objets via le code VBA .

Avant de nous plonger dans les différents objets et actions que vous pouvez effectuer via le code VBA , examinons d'abord la structure et la syntaxe VBA les plus courantes que vous pouvez utiliser lorsque vous écrivez du code VBA .

Où mettre le code VBA(Where To Put VBA Code)

Lorsque vous êtes dans l' éditeur VBA , vous devez utiliser les deux listes déroulantes en haut de la fenêtre d'édition pour choisir l'objet auquel vous voulez attacher le code et quand vous voulez que le code s'exécute.

Par exemple, dans Excel , si vous choisissez Feuille(Worksheet) de calcul et Activer(Activate) , le code s'exécute chaque fois que la feuille de calcul est ouverte. 

D'autres actions de feuille de calcul que vous pouvez utiliser pour déclencher votre code VBA incluent lorsque la feuille de calcul change, lorsqu'elle est fermée (désactivée), lorsque le calcul de la feuille de calcul est exécuté, etc.

Lorsque vous ajoutez du code VBA dans l'éditeur, assurez-vous toujours de placer votre code VBA sur l'objet et d'utiliser l'action correcte que vous souhaitez utiliser pour déclencher ce code.

Instructions VBA IF(VBA IF Statements)

Une instruction IF fonctionne dans VBA comme dans n'importe quel autre langage de programmation.

La première partie de l'instruction IF examine si une condition ou un ensemble de conditions est vrai. Ces conditions peuvent être jointes par un opérateur ET(AND) ou OU pour les relier entre elles.

Un exemple serait de vérifier si une note dans une feuille de calcul est supérieure ou inférieure à une note de «réussite» et d'attribuer le statut de réussite ou d'échec à une autre cellule.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Si vous ne voulez pas que l'intégralité de la déclaration apparaisse sur une seule ligne, vous pouvez la diviser en plusieurs lignes en ajoutant un symbole "_" à la fin des lignes.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

L'utilisation de cette technique peut souvent rendre le code beaucoup plus facile à lire et à déboguer.

VBA pour les prochaines boucles(VBA For Next Loops)

Les instructions IF sont idéales pour les comparaisons uniques, comme dans l'exemple ci-dessus de regarder une seule cellule. Mais que se passe-t-il si vous voulez parcourir une plage entière de cellules et faire la même instruction IF sur chacune ?

Dans ce cas, vous auriez besoin d'une boucle  FOR .

Pour ce faire, vous devez utiliser la longueur d'une plage et parcourir cette longueur en fonction du nombre de lignes contenant des données.

Pour ce faire, vous devez définir les variables de plage et de cellule, et les parcourir en boucle. Vous devrez également définir un compteur afin de pouvoir afficher les résultats dans la ligne appropriée. Donc, votre code VBA aurait d'abord cette ligne.

Dim rng As Range, cell As Range
Dim rowCounter as Integer

Définissez la taille de la plage comme suit. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Enfin, vous pouvez créer votre boucle FOR pour parcourir chaque cellule de cette plage et effectuer la comparaison.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Une fois ce script VBA(VBA script) exécuté, vous voyez les résultats dans la feuille de calcul réelle.

Boucles While VBA(VBA While Loops)

Une boucle(Loop) While parcourt également une série d'instructions, tout comme la boucle FOR , mais la condition de la boucle pour continuer est une condition restant vraie.

Par exemple, vous pouvez écrire la même boucle FOR ci-dessus, en tant que boucle (FOR)WHILE , en utilisant simplement la variable rowCounter comme suit.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Remarque : la limite de terminaison rng.Count + 2 est requise car le compteur de lignes commence à 2 et doit se terminer à la ligne 7 où les données se terminent. Cependant, le décompte de la plage (B2:B7) n'est que de 6, et la boucle While ne se terminera que lorsque le compteur sera PLUS GRAND(GREATER) que le compteur - la dernière valeur de rowCounter doit donc être 8 (ou rng.Count + 2).

Vous pouvez également configurer la boucle While comme suit :

While rowCounter <= rng.Count + 1

Vous ne pouvez incrémenter le nombre de plages (6) que de 1, car une fois que la variable rowCounter atteint la fin des données (ligne 7), la boucle peut se terminer.

Boucles VBA Do While et Do Until(VBA Do While and Do Until Loops)

Les boucles Do While et Do Until sont presque identiques aux boucles While, mais fonctionnent légèrement différemment.

  • La boucle While(While Loop) vérifie si une condition est vraie au début de la boucle.
  • La boucle Do-While(Do-While Loop) vérifie si une condition est vraie après l'exécution des instructions dans la boucle.
  • La boucle Do-Until(Do-Until Loop) vérifie si une condition est toujours fausse après l'exécution de la boucle.

Dans ce cas, vous réécririez la boucle While ci-dessus comme suit, en tant que boucle Do-While.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

Dans ce cas, la logique ne change pas beaucoup, mais si vous voulez vous assurer que la comparaison logique a lieu après l'exécution de toutes les instructions (leur permettant à toutes de s'exécuter quoi qu'il arrive au moins une fois), alors un Do-While ou la boucle Do-Until est la bonne option.

Instructions de sélection de cas VBA(VBA Select Case Statements)

Le dernier type d'instruction logique que vous devrez comprendre pour commencer à structurer votre code VBA sont les instructions (VBA)Select Case .

Compte tenu de l'exemple ci-dessus, supposons que vous souhaitiez avoir une méthode de notation qui ne soit pas simplement un échec. Au lieu de cela, vous souhaitez attribuer une note alphabétique de A à F.

Vous pouvez le faire avec l' instruction Select Case suivante :

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

La feuille de calcul résultante après l'exécution de ce script VBA ressemble à celle ci-dessous.

Vous savez maintenant tout ce que vous devez savoir pour commencer à utiliser VBA dans vos applications Microsoft Office .



About the author

Je suis un ingénieur en informatique avec plus de 10 ans d'expérience dans l'industrie du logiciel, plus précisément dans Microsoft Office. J'ai écrit des articles et des tutoriels sur divers sujets liés à Office, y compris des conseils sur la façon d'utiliser ses fonctionnalités plus efficacement, des astuces pour maîtriser les tâches bureautiques courantes, etc. Mes compétences en tant qu'écrivain font également de moi une excellente ressource pour ceux qui souhaitent en savoir plus sur Office ou qui ont simplement besoin de conseils rapides.



Related posts