VBA - Ouverture et utilisation de Visual Basic Editor (VBE) dans Excel

Ce didacticiel vous montrera comment ouvrir et programmer dans Visual Basic Editor en VBA.

Ouverture de l'éditeur Visual Basic

Il existe plusieurs façons d'accéder à Visual Basic Editor (VBE) dans Excel.

presse Alt + F11 sur votre clavier.

OU

Cliquez sur Affichage > Macros > Affichage des macros. De là, vous pouvez Éditer une macro existante ou Créer un nouveau. L'une ou l'autre option ouvre l'éditeur VB.

OU

Développeur > Visual Basic

Remarque : si vous ne voyez pas le ruban développeur, vous devrez l'activer.

Pour activer le ruban développeur

Clique sur le Déposer dans le ruban et descendez jusqu'à Options. Dans le Personnaliser le ruban options, cochez la case Développeur case à cocher. Ceci est désactivé par défaut, vous devrez donc l'activer pour voir l'onglet sur le ruban.

Cliquez sur d'accord.

L'onglet Développeur apparaîtra sur le ruban principal. Cliquez sur Visual Basic au début du ruban pour accéder à Visual Basic Editor.

Comprendre l'écran VBE

L'écran VBE est illustré dans le graphique ci-dessous.

L'explorateur de projets

L'explorateur de projet vous permet de voir comment le projet dans lequel vous travaillez est organisé. Vous pouvez voir combien de modules et de formulaires sont stockés dans le projet et naviguer entre ces modules et ces formulaires. Un module est l'endroit où le code de votre classeur est stocké, lorsque vous enregistrez une macro, il sera stocké dans un module standard - qui sera par défaut nommé 'Module 1'.

Chacune des feuilles de calcul de votre fichier Excel comporte également un module, tout comme le classeur lui-même. Lorsque vous insérez une nouvelle feuille dans le classeur via l'écran principal d'Excel, vous verrez un module de feuille supplémentaire apparaître dans l'explorateur de projet.

Double-cliquez sur un module pour accéder au code de ce module.

Vous pouvez également cliquer sur le menu Fenêtre de la barre d'outils et sélectionner le module à cet endroit pour accéder au code de ce module.

Type de modules

Les modules sont organisés en 5 types différents.

  1. Modules standards - la plupart de votre code ira dans ce type de module. Lorsque vous enregistrez une macro, elle est placée dans un module standard. Lorsque vous écrivez une procédure générale à utiliser tout au long de votre classeur, elle entre également normalement dans un module standard.
  2. Modules de classeur - ce module contient le code qui est unique à ce classeur individuel. La plupart du code de ce type de modules est connu sous le nom de ÉVÉNEMENTS. Un événement peut se produire lorsqu'un classeur est ouvert ou fermé par exemple. Le module peut également contenir du code écrit par vous-même et utilisé par les événements.
  3. Modules de feuilles - ce module contient le code qui est unique à cette feuille individuelle. Ils peuvent survenir lorsqu'on clique sur une feuille par exemple (le Cliquez sur l'événement) ou lorsque vous modifiez des données dans une cellule. Ce module peut également contenir du code écrit par vous-même et appelé par les événements.
  4. Modules de formulaire - c'est le module derrière un formulaire personnalisé que vous pouvez créer. Par exemple, vous pouvez créer un formulaire pour contenir les détails d'une facture, avec un bouton OK, le code derrière le bouton (l'événement de clic) contient le code qui s'exécutera lorsque le bouton est cliqué.
  5. Modules de classe - ce module permet de créer des objets à l'exécution. Les modules de classe sont utilisés par les programmeurs VBA avancés et seront traités à un stade ultérieur.

Insérer un module ou un formulaire dans votre code

Pour insérer un nouveau module dans votre code, cliquez sur le Insérer dans la barre de menu, puis cliquez sur Module.

Ou cliquez sur le Insérer un module bouton que vous trouverez sur le ruban standard.

Pour insérer un nouveau formulaire utilisateur dans votre code, sélectionnez le Formulaire utilisateur option.

Un nouveau formulaire d'utilisateur apparaîtra dans le Explorateur de projets et sera affiché dans la fenêtre de code sur la droite.

Vous pouvez également insérer un Module de classe

Un module de classe est utilisé pour insérer des objets dans votre projet VBA.

Suppression d'un module ou d'un formulaire de l'explorateur de projet

Cliquez avec le bouton droit sur le module ou le formulaire que vous souhaitez supprimer pour afficher le menu contextuel du clic droit.

Cliquez sur Supprimer (dans ce cas UserForm1… )

OU

Clique sur le Déposer menu, puis cliquez sur Supprimer (UserForm1).

Une boîte d'avertissement apparaîtra vous demandant si vous souhaitez exporter le formulaire ou le module avant de le supprimer. L'exportation du formulaire ou du module vous permet de l'enregistrer en tant que fichier individuel à utiliser dans un autre projet Excel à un autre moment.

Le plus souvent, lorsque vous supprimez un module ou un formulaire, c'est parce que vous n'en avez pas besoin, alors cliquez sur Non.

La fenêtre des propriétés

Vous verrez la fenêtre des propriétés sous le Explorateur de projets. Vous devrez peut-être l'activer.

presse F4 ou cliquez Vue, Fenêtre Propriétés.

La fenêtre des propriétés vous permet de voir les propriétés du module ou du formulaire sélectionné dans le Explorateur de projets. Lorsque vous travaillez dans des modules, vous pouvez utiliser la fenêtre des propriétés pour modifier le nom du module. C'est la seule propriété disponible pour un module. Cependant, lorsque vous travaillez avec des formulaires, il y aura beaucoup plus de propriétés disponibles et la fenêtre Propriétés est alors largement utilisée pour contrôler le comportement des formulaires et les contrôles contenus dans le formulaire.

Lorsque vous enregistrez une macro, elle est automatiquement placée dans un module standard. Le module s'appellera 'Module 1' et tout code contenu dans ce module est disponible pour être utilisé tout au long de votre projet. Vous devez renommer votre module en quelque chose de significatif, qui rendrait votre code facile à trouver si vous deviez ajouter plusieurs modules au projet.

Vous pouvez également renommer vos formulaires.

Si vous avez renommé votre feuille dans Excel, le nom de la feuille apparaîtra comme le nom de la feuille entre parenthèses après Sheet1.

Si vous souhaitez modifier le nom du module derrière la feuille, vous pouvez le modifier de la même manière que vous modifiez le nom du module et du formulaire utilisateur - en modifiant la propriété Name dans la fenêtre Propriétés.

Fatigué de rechercher des exemples de code VBA ? Essayez AutoMacro !

La fenêtre de code

La fenêtre de code vous montre les sous-procédures et fonctions contenues dans vos modules - elle vous montre le code réel. Lorsque vous enregistrez une macro, une sous-procédure sera créée pour vous. Si vous ajoutez une touche de raccourci à la macro, elle apparaîtra sous forme de commentaire dans la macro pour vous indiquer quelle est la touche de raccourci que vous avez attribuée à la macro.

En haut de la fenêtre de code se trouvent deux zones de liste déroulante. Ceux-ci vous permettent de voir sur quel objet (le cas échéant) du module vous travaillez et sur quelle procédure vous travaillez.

Dans l'exemple ci-dessus, nous ne travaillons sur aucun objet - il est donc défini sur général, mais nous travaillons dans le cadre de la procédure Gridlines.

Si nous avions plus d'une procédure dans ce module, nous pourrions utiliser la zone de liste déroulante ci-dessus pour naviguer vers les autres procédures.

Comprendre le code

Il existe 2 types de procédures - Sous-procédures et Procédures fonctionnelles.

Sous-procédures

L'enregistreur de macros ne peut enregistrer que des procédures Sub. Une procédure Sub fait des choses. Ils effectuent des actions telles que la mise en forme d'un tableau ou la création d'un tableau croisé dynamique, ou dans l'exemple du quadrillage, la modification des paramètres d'affichage de votre fenêtre active. La majorité des procédures écrites sont des sous-procédures. Toutes les macros sont des sous-procédures.

Une sous-procédure commence par un Sous déclaration et se termine par une Fin du sous-marin déclaration. Le nom de la procédure est toujours suivi de parenthèses.

123 Sub HideGridLines()ActiveWindow.DisplayGridlines = FalseFin du sous-marin

Procédures de fonction

Une procédure Function renvoie une valeur. Cette valeur peut être une valeur unique, un tableau, une plage de cellules ou un objet. Les fonctions effectuent généralement un certain type de calcul. Les fonctions dans Excel peuvent être utilisées avec l'assistant de fonction ou peuvent être appelées à partir de sous-procédures.

123 Fonction Kilos (livres en double)Kilos = (livres/2,2)Fonction de fin

Cette fonction peut être utilisée dans la boîte de dialogue Insérer une fonction dans Excel pour convertir des livres en kilogrammes.

Créer une nouvelle procédure

Avant de créer votre nouvelle procédure, assurez-vous d'être dans le module dans lequel vous souhaitez stocker la procédure. Vous pouvez créer une nouvelle procédure en cliquant sur le menu Insertion, Procédure;

ou vous pouvez cliquer sur l'icône dans la barre d'outils

La boîte de dialogue suivante apparaîtra

  1. Tapez le nom de votre nouvelle procédure dans la zone de nom - cela doit commencer par une lettre de l'alphabet et peut contenir des lettres et des chiffres et comporter un maximum de 64 caractères.
  2. Vous pouvez avoir un Sous-procédure, une Procédure de fonction ou un Biens procédure. (Les propriétés sont utilisées dans les modules de classe et définissent les propriétés des contrôles ActiveX que vous avez peut-être créés).
  3. Vous pouvez faire la portée de la procédure soit Publique ou Privé. Si la procédure est publique (par défaut), alors elle peut être utilisée par tous les modules du projet alors que si la procédure est privée, elle ne pourra être utilisée que par ce module.
  4. Vous pouvez déclarer des variables locales dans cette procédure en tant que statiques (cela concerne la portée de la variable et rend une variable de niveau de procédure locale publique pour l'ensemble du module). Nous n'utiliserons pas cette option.

Lorsque vous avez rempli tous les détails pertinents, cliquez sur d'accord.

Vous tapez ensuite votre code entre les instructions Sub et End Sub.

ALTERNATIVEMENT - vous pouvez taper les instructions Sub et End Sub dans votre module exactement comme elles apparaissent ci-dessus. Vous n'avez pas besoin de mettre le mot Public devant le mot sub - si ce mot est omis, toutes les procédures du module sont automatiquement supposées être publiques.

Puis tu tapes Sous puis le nom de votre procédure suivi de parenthèses.

c'est à dire:

1 Sous-test()

Les Fin du sous-marin déclaration apparaîtra automatiquement.

Programmation VBA | Le générateur de code fonctionne pour vous !

Rédaction de code facile à comprendre et à parcourir

Ajout de commentaires

Prenez l'habitude de mettre des commentaires dans votre code afin de vous rappeler ultérieurement les fonctionnalités du code.

Vous pouvez insérer un commentaire dans votre code mais en tapant une apostrophe sur le clavier ou vous pouvez basculer sur la barre d'outils Modifier et utiliser le bouton de commentaire qui apparaît sur cette barre d'outils.

Cliquez avec le bouton droit sur les barres d'outils.

Sélectionner Éditer.

Cliquez sur le bouton commentaire pour insérer un commentaire dans votre code.

REMARQUE: Vous n'utilisez généralement le bouton de bloc de commentaire que lorsque vous avez quelques lignes de code que vous souhaitez commenter (et non supprimer). Il est plus facile pour un seul commentaire d'utiliser une apostrophe.

Indentation

Une bonne habitude à prendre est d'indenter votre code pour faciliter la lecture du code et voir les différentes parties du code.

Il peut y avoir plusieurs niveaux d'indentation, selon la logique de votre code.

Majuscules vs minuscules

VBA ajuste tout le code à la casse appropriée, donc si vous tapez TOUT EN MAJUSCULES ou tout en minuscule, il réajustera votre code pour qu'il soit dans la casse appropriée !

Programmation VBA | Le générateur de code fonctionne pour vous !

Saisie automatique

Lorsque vous ajustez votre code, vous remarquerez que VBA essaie de vous aider en suggérant le code que vous pouvez taper. C'est ce qu'on appelle la saisie semi-automatique.

Trappe d'erreur et débogage

Il existe 4 types d'erreurs qui peuvent se produire lorsque vous écrivez du code VBA : erreurs de syntaxe, erreurs de compilation, erreurs d'exécution et erreurs logiques.

Erreurs de syntaxe

Ceux-ci se produisent lorsque vous écrivez le code de manière incorrecte. Ceci est largement évité par VBA en activant l'option de vérification de la syntaxe. Ceci est normalement activé par défaut, mais si vous êtes éteint, allumez-le en allant sur Outils, Options et cliquez Vérification automatique de la syntaxe.

Si vous tapez le code de manière incorrecte (par exemple en excluant quelque chose qui devrait être dans le code), une boîte de message apparaîtra pendant que vous écrivez le code vous donnant la possibilité de modifier le code.

Erreurs de compilation

Ceux-ci se produisent lorsqu'il manque quelque chose dans le code qui empêche le code de s'exécuter. L'erreur ne survient pas lorsque vous écrivez le code, mais elle se produit lorsque vous essayez d'exécuter le code.

Programmation VBA | Le générateur de code fonctionne pour vous !

Erreurs d'exécution

Ceux-ci se produisent lorsque vous exécutez le code et que la syntaxe et la compilation sont correctes, mais quelque chose d'autre se produit pour empêcher le code de s'exécuter correctement.

Dans ce cas, Sheet4 n'existe pas. Ce message d'erreur est plus utile que les messages d'erreur de compilation car il vous donne la possibilité de déboguer le code et de voir pourquoi il ne fonctionne pas.

Cliquez sur Déboguer. Le code s'arrêtera à l'erreur et mettra en évidence l'erreur en jaune vous permettant de corriger votre erreur.

Modifiez Sheet4 en Sheet2 (car la feuille 2 existe et la feuille 4 n'existe pas).

presse F5 ou cliquez sur le Continuer bouton de la barre d'outils.

Erreurs logiques

Ce sont les plus difficiles à trouver. Dans leur cas, le code est écrit correctement mais la logique réelle du code est défectueuse, vous risquez donc de ne pas obtenir le résultat souhaité du code. Pour les erreurs logiques, le piégeage des erreurs est essentiel.

Il existe 2 types de traps d'erreur

En cas d'erreur Aller à

Le code suivant permet d'ouvrir la boîte de dialogue d'ouverture de fichier - il nous donnera une erreur si l'utilisateur clique Annuler.

Lorsque vous exécutez le code, la boîte de dialogue Ouvrir un fichier s'affiche.

Lorsque vous cliquez ensuite sur annuler, l'erreur se produit.

L'interruption d'erreur suivante continuera le code jusqu'à la fonction de sortie du code et renverra le message.

Cela utilise On Error GoTo pour quitter la fonction.

Lorsque vous exécutez le code et cliquez sur Annuler, la boîte de message apparaît.

En cas d'erreur Reprendre ensuite

Si vous mettez le En cas d'erreur Reprendre ensuite Déclaration dans votre code, la ligne qui contient l'erreur sera ignorée et le code continuera.

Par exemple, si l'utilisateur clique sur Annuler dans le code ci-dessous, le code ne vous donnera pas d'erreur d'exécution, il se terminera simplement sans que le code fasse quoi que ce soit de plus.

Il y a des moments où cela est très utile, mais cela peut aussi être très dangereux dans certaines circonstances car cela ne renvoie pas de message expliquant pourquoi vous avez obtenu une erreur.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave