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

La plate-forme de programmation VBA qui fonctionne dans presque tous les produits Microsoft Office est l’un des outils les plus puissants que l’on puisse utiliser pour améliorer son utilisation de ces produits.

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

Le meilleur guide VBA pour les debutants dont vous aurez

Ce guide VBA utilise la dernière version des produits Microsoft Office. Si vous avez une version antérieure, vous pouvez voir de légères différences par rapport aux captures d’écran.

Comment activer et utiliser l’éditeur VBA

Dans l’un des produits Office utilisés dans ce guide, vous remarquerez peut-être que vous ne disposez pas du menu Développeur référencé. Le menu développeur n’est disponible que dans Excel, Word, Outlook et Powerpoint. OneNote ne propose pas d’outil pour modifier le code VBA à partir de l’application, mais vous pouvez toujours référencer l’API OneNote pour interagir avec OneNote à partir d’autres programmes Office.

Vous apprendrez comment faire cela dans notre prochain guide Advanced VBA.

  • Pour activer le menu Développeur dans n’importe quel produit bureautique, sélectionnez le Fichier menu et sélectionnez Options dans le menu de navigation de gauche.
  • Vous verrez une fenêtre contextuelle du menu Options. Sélectionner Personnaliser le ruban dans le menu de navigation de gauche.
Le meilleur guide VBA pour les debutants dont vous aurez

La liste de gauche comprend tous les menus et commandes de menu disponibles dans cette application Office. La liste de droite est celle qui est actuellement disponible ou activée.

  • Vous devriez voir Developer dans la liste de droite, mais il ne sera pas activé. Cochez simplement la case pour activer le menu Développeur.
1607696661 824 Le meilleur guide VBA pour les debutants dont vous aurez
  • Si tu ne vois pas Développeur disponible à droite, puis changez à gauche Choisissez les commandes du menu déroulant à Toutes les commandes. Trouver Développeur dans la liste et sélectionnez Ajouter >> au centre pour ajouter ce menu au ruban.
  • Sélectionner D’accord quand vous avez terminé.
  • Une fois le menu Développeur actif, vous pouvez revenir à la fenêtre principale de votre application et sélectionner Développeur dans le menu du haut.
  • Puis sélectionnez Afficher le code dans le groupe Contrôles du ruban pour ouvrir la fenêtre de l’éditeur VBA.
1607696662 438 Le meilleur guide VBA pour les debutants dont vous aurez
  • Cela ouvrira la fenêtre de l’éditeur VBA où vous pourrez taper le code que vous apprendrez dans les prochaines sections.
1607696662 169 Le meilleur guide VBA pour les debutants dont vous aurez
  • Essayez d’ajouter le menu Développeur à quelques-unes des applications Office que vous utilisez chaque jour. 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

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.

1607696662 251 Le meilleur guide VBA pour les debutants dont vous aurez

En effet, les objets disponibles dans lesquels vous pouvez placer le 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. 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. 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 entreprendre 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

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 souhaitez attacher le code et quand vous voulez que le code s’exécute.

Par exemple, dans Excel, si vous choisissez Feuille de travail et Activer, le code s’exécutera à chaque ouverture de la feuille de calcul.

1607696662 506 Le meilleur guide VBA pour les debutants dont vous aurez

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

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 AND ou OR pour les relier.

Un exemple serait de vérifier si une note dans une feuille de calcul est au-dessus ou en dessous d’une note «de passage», et d’attribuer le statut de réussite ou d’échec à une autre cellule.

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

Si vous ne voulez pas que l’instruction entière sur une seule ligne, vous pouvez la diviser en plusieurs lignes en ajoutant un symbole «_» à la fin des lignes.

Si Cellules (2, 2)> 75 Alors _
Cellules (2, 3) = «Réussir» Sinon _
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

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

Dans ce cas, vous aurez 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 la plage et les variables 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, cellule 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 exécuté, vous voyez les résultats dans la feuille de calcul réelle.

1607696662 786 Le meilleur guide VBA pour les debutants dont vous aurez

Boucles While VBA

Une boucle While effectue également une boucle sur une série d’instructions, tout comme la boucle FOR, mais la condition de la boucle pour continuer est une condition qui reste vraie.

Par exemple, vous pouvez écrire la même boucle FOR ci-dessus, comme une boucle 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

Noter la rng.Count + 2 La limite de fin est requise car le compteur de lignes commence à 2 et doit se terminer à la ligne 7 où les données se terminent. Cependant, le compte de la plage (B2: B7) n’est que de 6, et la boucle While ne se terminera qu’une fois que le compteur est PLUS GRAND que le compteur – donc la dernière valeur rowCounter doit être 8 (ou rng.Count + 2).

Vous pouvez également configurer la boucle While comme suit:

Alors que 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.

VBA faire pendant et faire jusqu’à boucles

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

  • le Alors que la boucle vérifie si une condition est vraie au début de la boucle.
  • le Boucle Do-While vérifie si une condition est vraie après l’exécution des instructions dans la boucle.
  • le Boucle Do-Until vérifie si une condition est toujours fausse après l’exécution de la boucle.

Dans ce cas, vous réécrivez 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 que toutes les instructions ont été exécutées (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.

Déclarations de cas VBA Select

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

Compte tenu de l’exemple ci-dessus, supposons que vous souhaitiez avoir une méthode de notation qui ne soit pas simplement une réussite. Au lieu de cela, vous souhaitez attribuer une note de lettre 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 obtenue après l’exécution de ce script VBA ressemble à celle ci-dessous.

1607696662 631 Le meilleur guide VBA pour les debutants dont vous aurez

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