Recherche…


Remarques

Cette section fournit une vue d'ensemble de ce que vba est et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets au sein de vba, et établir un lien avec les sujets connexes. La documentation de vba étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Versions

Version Versions Office Date de sortie Notes Date de sortie
Vba6 ? - 2007 [Quelque temps après] [1] 1992-06-30
Vba7 2010 - 2016 [blog.techkit.com] [2] 2010-04-15
VBA pour Mac 2004, 2011 - 2016 2004-05-11

Accès à Visual Basic Editor dans Microsoft Office

Vous pouvez ouvrir l'éditeur VB dans l'une des applications Microsoft Office en appuyant sur Alt + F11 ou en accédant à l'onglet Développeur et en cliquant sur le bouton "Visual Basic". Si vous ne voyez pas l'onglet Développeur dans le ruban, vérifiez si cette option est activée.

Par défaut, l'onglet Développeur est désactivé. Pour activer l'onglet Développeur, sélectionnez Fichier -> Options, sélectionnez Personnaliser le ruban dans la liste de gauche. Dans l'arborescence de droite "Personnaliser le ruban", recherchez l'élément d'arborescence Developer et définissez la case à cocher pour la case à cocher Developer sur cochée. Cliquez sur OK pour fermer la boîte de dialogue Options.

Menu d'options de fichier

L'onglet Développeur est maintenant visible dans le ruban sur lequel vous pouvez cliquer sur "Visual Basic" pour ouvrir Visual Basic Editor. Vous pouvez également cliquer sur "Afficher le code" pour afficher directement le volet de code de l'élément actuellement actif, par exemple WorkSheet, Chart, Shape.

Onglet Développeur

VBE

Vous pouvez utiliser VBA pour automatiser presque toutes les actions pouvant être effectuées de manière interactive (manuellement) et fournir des fonctionnalités qui ne sont pas disponibles dans Microsoft Office. VBA peut créer un document, y ajouter du texte, le formater, le modifier et l'enregistrer, le tout sans intervention humaine.

Premier module et Bonjour tout le monde

Pour commencer à coder en premier lieu, vous devez faire un clic droit sur votre projet VBA dans la liste de gauche et ajouter un nouveau module. Votre premier code Hello-World pourrait ressembler à ceci:

Sub HelloWorld()
    MsgBox "Hello, World!"
End Sub

Pour le tester, appuyez sur le bouton Play de votre barre d'outils ou appuyez simplement sur la touche F5 . Toutes nos félicitations! Vous avez construit votre premier module VBA.

Le débogage

Le débogage est un moyen très puissant d’examiner de plus près et de corriger le code qui ne fonctionne pas correctement.

Exécuter le code pas à pas

La première chose à faire pendant le débogage consiste à arrêter le code à des emplacements spécifiques, puis à l'exécuter ligne par ligne pour voir si cela se produit.

  • Point d'arrêt ( F9 , Débogage - Activer / désactiver le point d'arrêt): vous pouvez ajouter un point d'arrêt à toute ligne exécutée (par exemple, pas aux déclarations) lorsque l'exécution s'arrête et donne le contrôle à l'utilisateur.
  • Vous pouvez également ajouter le mot-clé Stop à une ligne vide pour que le code s'arrête à cet emplacement lors de l'exécution. Ceci est utile si, par exemple, avant les lignes de déclaration auxquelles vous ne pouvez pas ajouter de point d'arrêt avec F9
  • Step into ( F8 , Debug - Step into): exécute une seule ligne de code, si c'est un appel d'une sous-fonction définie par l'utilisateur, alors cela est exécuté ligne par ligne.
  • Step over ( Shift + F8 , Debug - Step over): exécute une ligne de code, n'entre pas dans les sous-parties / fonctions définies par l'utilisateur.
  • Sortir ( Ctrl + Maj + F8 , Déboguer - Sortir): Quitter la sous-fonction / fonction actuelle (exécuter le code jusqu'à sa fin).
  • Exécuter au curseur ( Ctrl + F8 , Debug - Exécuter au curseur): exécuter le code jusqu'à atteindre la ligne avec le curseur.
  • Vous pouvez utiliser Debug.Print pour imprimer des lignes dans la fenêtre immédiate lors de l'exécution. Vous pouvez également utiliser Debug.? comme raccourci pour Debug.Print

Fenêtre montres

Exécuter le code ligne par ligne n'est que la première étape, nous avons besoin de connaître plus de détails et un outil pour cela est la fenêtre de surveillance (View - Watch window), ici vous pouvez voir les valeurs des expressions définies. Pour ajouter une variable à la fenêtre de surveillance:

  • Faites un clic droit dessus puis sélectionnez "Ajouter une montre".
  • Cliquez avec le bouton droit dans la fenêtre de surveillance, sélectionnez "Ajouter une montre".
  • Aller au débogage - Ajouter regarder.

Lorsque vous ajoutez une nouvelle expression, vous pouvez choisir si vous souhaitez simplement voir sa valeur, ou encore casser l’exécution du code quand elle est vraie ou si sa valeur change.

Fenêtre Immédiate

La fenêtre immédiate vous permet d'exécuter du code arbitraire ou d'imprimer des éléments en les faisant précéder du mot-clé Print ou d'un seul point d'interrogation " ? "

Quelques exemples:

  • ? ActiveSheet.Name - renvoie le nom de la feuille active
  • Print ActiveSheet.Name - renvoie le nom de la feuille active
  • ? foo - renvoie la valeur de foo *
  • x = 10 définit x à 10 *

* L'obtention / la définition de valeurs pour les variables via la fenêtre immédiate ne peut être effectuée que pendant l'exécution

Débogage des meilleures pratiques

Chaque fois que votre code ne fonctionne pas comme prévu, la première chose à faire est de le relire attentivement, en recherchant les erreurs.

Si cela ne vous aide pas, commencez à le déboguer. Pour les procédures courtes, il peut être efficace de l'exécuter ligne par ligne. Pour les procédures plus longues, vous devrez probablement définir des points d'arrêt ou des ruptures sur les expressions surveillées. L'objectif est de trouver que la ligne ne fonctionne pas comme prévu.

Une fois que vous avez la ligne qui donne un résultat incorrect, mais que la raison n'est pas encore claire, essayez de simplifier les expressions ou remplacez les variables par des constantes, ce qui peut aider à comprendre si la valeur des variables est incorrecte.

Si vous ne pouvez toujours pas le résoudre, et demander de l'aide:

  • Inclure la plus petite partie de votre code possible pour comprendre votre problème
  • Si le problème n'est pas lié à la valeur des variables, remplacez-les par des constantes. (donc, au lieu de Sheets(a*b*c+d^2).Range(addressOfRange) écrire des Sheets(4).Range("A2") )
  • Décrivez quelle ligne donne le mauvais comportement, et de quoi il s'agit (erreur, mauvais résultat ...)


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow