Initiation à VBA cours
Initiation à VBA cours de base avec exemples
…
Configuration de Visual Basic Editor dans Excel (VBE)
Visual Basic Editor est un programme dans Excel qui vous permet de communiquer avec Excel. Nous allons l'ouvrir et commencer par le mettre en place afin que travailler en son sein devient facile et efficace.
Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur (Book1).
Sur votre clavier, appuyez sur la touche "ALT" (à gauche de la barre d'espace) et maintenez, appuyez sur la touche "F11" (la touche F11 est en haut de votre clavier) .Vous voyez maintenant Visual Basic Editor. Appuyez à nouveau sur "ALT / F11" et vous êtes de retour dans Excel. Utilisez la touche "ALT / F11" pour passer d'Excel à la VBA et revenir.
Lorsque vous ouvrez le VBE pour la première fois, vous verrez une fenêtre qui ressemble à l'image ci-dessous.
S'il y a des fenêtres ouvertes dans le VBE comme dans l'image ci-dessous, cliquez sur les X pour les fermer et voir un rectangle gris remplir la partie inférieure de l'écran comme dans l'image ci-dessus.
Les trois fenêtres dans l'éditeur Visual Basic
Pour être efficace en travaillant avec le VBE il devrait toujours y avoir 3 fenêtres comme dans l'image ci-dessous; la fenêtre de projet (1), la fenêtre de code (2) et la fenêtre de propriétés (3), disposées comme dans l'image ci-dessous. Vous pouvez redimensionner les fenêtres en cliquant à gauche où se trouvent les étoiles rouges, en les maintenant et en les déplaçant sur le côté ou de haut en bas. Nous allons étudier chacune des trois fenêtres dans les leçons 2, 3 et 4, mais nous allons d'abord les mettre en place dans le VBE.
Dans l'exercice ci-dessous, nous allons configurer les 3 fenêtres du VBE.
Exercice 1 (Créez votre première macro et utilisez-la)
Rappelez-vous que vous n'effectuerez cette tâche qu'une seule fois car chaque fois que vous ouvrirez le VBE, il restera configuré.
Étape 1: Fermez toutes les fenêtres ouvertes dans le VBE pour obtenir ceci:
Étape 2: Allez dans la barre de menu "View" et cliquez sur "Project Explorer". Le résultat sera un peu comme l'image ci-dessous:
Si la fenêtre du projet apparaît déjà comme une colonne sur le côté gauche de l'écran, vous n'avez rien d'autre à faire pour l'instant. Si la fenêtre du projet apparaît au milieu de la zone grise comme ci-dessus, faites un clic droit dans l'espace blanc au milieu de la fenêtre du projet et cochez "Ancrable". Cliquez ensuite sur la barre bleue supérieure de la fenêtre Projet, maintenez-la enfoncée et faites-la glisser vers la gauche jusqu'à ce que le curseur (flèche blanche) touche le milieu du côté gauche de l'écran. Lorsque vous relâchez le bouton de la souris, le résultat final doit être comme indiqué dans l'image ci-dessous. Félicitations, vous avez configuré la première fenêtre principale du VBE.
Étape 3: Déplacez votre curseur sur la ligne séparant la fenêtre du projet et le rectangle gris. Quand il se tourne vers deux petites lignes parallèles et que les flèches cliquent, maintenez et déplacez les lignes latéralement. Redimensionnez les deux fenêtres comme vous le souhaitez.
Étape 4: Revenez à la barre de menu "Affichage" et cliquez sur "Fenêtre Propriétés". La fenêtre Propriétés apparaîtra comme dans l'image ci-dessous.
Si la fenêtre Propriétés est déjà située sous la fenêtre Projet, il n'y a plus rien à faire. Si cela se voit comme dans l'image ci-dessus, faites un clic droit dans l'espace blanc au milieu de la fenêtre Propriétés et cochez "Dockable". Cliquez ensuite sur la barre bleue supérieure de la fenêtre Propriétés et faites-la glisser vers la gauche et vers le bas jusqu'à ce que le curseur (flèche blanche) touche le centre du bas de la fenêtre Projet. Lorsque vous relâchez le bouton de la souris, le résultat final doit correspondre à l'image ci-dessous. Félicitations, vous avez configuré la deuxième fenêtre principale du VBE.
Étape 5: Déplacez votre curseur sur la ligne séparant la fenêtre du projet et la fenêtre des propriétés. Quand il se tourne vers deux petites lignes parallèles et que les flèches cliquent, maintenez et déplacez les lignes verticalement. Redimensionnez les deux fenêtres comme vous le souhaitez.
Etape 6: Pour ajouter la fenêtre de code à la configuration, il suffit de double-cliquer sur le nom d'un composant dans la fenêtre Projet (Sheet1, Sheet2, Sheet3 ou ThisWorkbook) et sa fenêtre de code apparaît dans le rectangle gris. Vous pouvez agrandir n'importe quelle fenêtre de code en cliquant sur son bouton "Agrandir".
Le résultat final ressemble à l'image ci-dessous. Les mots "Option Explicit" peuvent ne pas être présents dans votre fenêtre de code. Nous aborderons ce problème plus tard dans la leçon sur les variables (Leçon 19). Vous pouvez également avoir un objet VBAProject nommé FUNCRES.XLA ou FUNCRES.XLAM dans la fenêtre de projet. Oubliez ce projet pour le moment.
Étape 6: Maintenant, allez dans Excel et fermez-le. Rouvrez Excel, allez dans le VBE (ALT / F11) et vous verrez que l'installation de VBE persiste. Félicitations, vous êtes maintenant prêt à travailler dans Visual Basic Editor.
Nous en découvrirons plus sur chacune de ces trois fenêtres dans les leçons 2 (fenêtre de projet), 3 (fenêtre de propriétés) et 4 (fenêtres de code).
- Leçon 2: Fenêtre de projet dans l'éditeur Visual Basic
VBA pour Excel Leçon 2: la fenêtre de projet dans l'éditeur Visual Basic d'Excel
Remarque: Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur. Utilisez ALT / F11 pour ouvrir Visual Basic Editor comme vous l'avez appris dans la leçon 1.
Comme vous pouvez le constater, la fenêtre Projet affiche tous les classeurs ouverts ("Book1" dans l'exemple ci-dessous) et leurs composants. Vous pouvez utiliser les signes + et - pour afficher les détails.
Un nouveau classeur Excel comprend trois feuilles et un autre composant nommé "ThisWorkbook". Comme nous le verrons plus tard dans la leçon 9 sur les événements, "ThisWorkbook" est un composant dans lequel vous stockez les macros (également appelées procédures VBA) qui doivent démarrer automatiquement lorsque le classeur est ouvert.
Travailler dans la fenêtre de projet
Nous allons maintenant faire un bref exercice pour apprendre à quel point il est facile de travailler dans la fenêtre du projet.
Exercice 2 (Créez votre première macro et utilisez-la)
Étape 1: À l'aide de la touche ALT / F11, revenez à Excel.
Étape 2: Ajouter une feuille Cliquez avec le bouton droit sur l'onglet de Sheet2 et sélectionnez "Insérer".
Étape 3: Dans la boîte de dialogue qui apparaît, cliquez sur "OK".
Étape 4: à l'aide de la touche "ALT / F11", revenez à Visual Basic Editor et voir qu'une feuille a été ajoutée au classeur. Notez que les feuilles de calcul sont triées par ordre alphabétique dans la fenêtre Projet même si elles ne sont pas dans le classeur.
Si vous avez acheté et téléchargé le cours sur Macros Excel et ouvert le fichier Excel "vba-tutorial-editor.xls" plus un nouveau classeur, vous verrez ceci:
Dans l'image ci-dessus, vous pouvez voir que le VBAProject nommé "Book1.xls" a 3 feuilles et ThisWorkbook. Le classeur "vba-tutorial-editor.xls" a 7 feuilles, deux userforms, deux modules plus l'objet "ThisWorkbook".
- Les userforms sont des fenêtres de dialogue (voir l'exemple d'image ci-dessous) que vous développez pour communiquer avec les utilisateurs de vos programmes Excel et leur demander de fournir des informations ou de faire des choix.
- Les modules sont des dossiers dans lesquels vous sauvegardez une ou plusieurs de vos macros. Vous pouvez exporter et enregistrer ces modules pour les utiliser ultérieurement dans un autre classeur.
Dans la leçon 2 complète, vous apprendrez comment ajouter n'importe quel type de composants et comment les supprimer, les importer, les exporter et les gérer à partir de la fenêtre Projet.
- Leçon 3: Fenêtre Propriétés dans Visual Basic Editor
VBA pour Excel Leçon 3: La fenêtre Propriétés dans Visual Basic Editor d'Excel
Remarque: Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur. Utilisez ALT / F11 pour ouvrir Visual Basic Editor comme vous l'avez appris dans la leçon 1.
La fenêtre Propriétés affiche les propriétés du composant sélectionné dans la fenêtre Projet (clic simple). Par exemple dans le nouveau classeur si vous cliquez simplement sur "Sheet1" dans la fenêtre de projet, vous voyez les propriétés de sheet1 dans la fenêtre Propriétés comme dans l'image ci-dessous.
Comme vous pouvez le voir, une feuille de calcul possède 12 propriétés que vous pouvez modifier dans cette fenêtre Propriétés. Notez qu'il y a 2 propriétés "Name". Sur la première ligne, il y a le nom programmatique de la feuille (Sheet1). Vous découvrirez plus tard les avantages et les inconvénients de changer cette propriété. La deuxième propriété "Nom" (9ème ligne) est le nom (ou la légende) qui apparaît sur l'onglet de la feuille dans Excel.
Changer la propriété "Nom"
Exercice 3 (Créez votre première macro et utilisez-la)
Étape 1: Allez dans Excel (ALT / F11) et notez les noms sur les trois onglets de "Sheet1" comme dans l'image ci-dessous.
Étape 2: Nous allons changer le nom (légende) sur l'onglet "sheet1" en "Introduction". Pour ce faire, faites un clic droit sur l'onglet de la feuille et la fenêtre de dialogue suivante apparaît:
Étape 3: Sélectionnez "Renommer". Le menu disparaît et le nom de Sheet1 est mis en surbrillance. Entrez "Introduction" et ce nouveau nom remplacera "Sheet1" lorsque vous cliquez sur "Entrée". Le résultat final est illustré dans l'image ci-dessous.
Étape 4: Revenez à Visual Basic Editor (ALT / F11) et notez dans la fenêtre Propriétés que la propriété "Name" (la neuvième propriété, celle sans les parenthèses) a été remplacée par "Introduction".
Comme vous avez maintenant appris le nom de la feuille peut être modifié à partir d'Excel. Nous allons maintenant compléter un autre exercice smal pour changer le nom de la fenêtre Propriétés de VBE.
Exercice 4 (Créez votre première macro et utilisez-la)
Étape 1: Dans le VBE sélectionnez "Sheet2" dans la fenêtre de projet. Sur la ligne 9 de la fenêtre Propriétés double-cliquez sur "Sheet2" et entrez le nom Spreadsheet. Cliquez "Entrer"
Étape 2: Allez dans Excel et notez que vous avez maintenant une feuille nommée "Spreadsheet".
Définir et modifier les propriétés des objets dans les propriétés Windows est quelque chose que vous devrez faire beaucoup lorsque vous commencerez à développer des userforms (voir les leçons 24 à 33).
Jusque-là, vous allez modifier un petit nombre de propriétés, y compris la très importante propriété "Visible" des feuilles à l'une de ses trois valeurs. Pour voir l'équivalent de l'image ci-dessous, sélectionnez Feuille2 (feuille de calcul) dans la fenêtre Projet. Cliquez sur le mot "Visible" sur la 12ème ligne de la fenêtre Propriétés. Une flèche déroulante apparaît dans la cellule à droite. Cliquez sur la flèche et vous pouvez sélectionner l'une des trois propriétés.
Dans la leçon 3 du tutoriel téléchargeable sur VBA pour Excel, vous découvrirez à quel point la propriété "xlSheetVeryHidden" peut être utile. Cette propriété d'une feuille peut être utilisée - par exemple, pour masquer les salaires dans une application de budgétisation ou les prix dans une application d'estimation - rendant les données sensibles inaccessibles aux utilisateurs non autorisés de vos classeurs.
- Leçon 4: Fenêtre de code dans Visual Basic Editor
VBA pour Excel Leçon 4: La fenêtre de code dans l'éditeur Visual Basic d'Excel
Remarque: Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur. Utilisez ALT / F11 pour naviguer à partir de Visual Basic Editor vers Excel comme vous l'avez appris dans la leçon 1.
La fenêtre de code est où 90% du travail VBA est fait; écrire des phrases VBA, tester vos procédures VBA (macros) et les modifier si nécessaire.
Pour illustrer tout ce que vous pouvez faire dans la fenêtre Code, nous allons commencer par créer une petite macro dans un classeur vide.
Exercice 6 (Créez votre première macro et utilisez-la)
Étape 1: Dans Excel, notez que les cellules A1, A2 et A3 de "Sheet1" sont vides. Allez dans l'éditeur Visual Basic.
Étape 2: Double-cliquez sur "Sheet1" dans la fenêtre de projet. Sur la droite est la fenêtre de code de "Sheet1"
Dans le cadre de cet exercice, nous allons développer une petite macro dans la fenêtre de code d'une feuille. Vous développerez plus tard l'habitude de créer des modules et d'organiser vos macros en leur sein.
Étape 3: Cliquez n'importe où dans la fenêtre de code
Étape 4: Vous pouvez soit copier / coller la macro suivante de votre navigateur dans la fenêtre de code de "Sheet1" ou l'entrer.
Si vous décidez de l'entrer, vous commencerez en tapant la première ligne et lorsque vous appuyez sur Entrée, le VBE ajoutera la dernière ligne "End Sub". Entrez le reste du code dans les deux lignes. Assurez-vous que tout est là, y compris tous les guillemets, les périodes, les parenthèses, les signes égaux et les espaces.
Sous proFirst ()
Plage ("A1"). Valeur = 34
Plage ("A2"). Valeur = 66
Plage ("A3"). Formule = "= A1 + A2"
Plage ("A1"). Sélectionnez
End Sub
Etape 5: Cliquez sur n'importe quelle ligne de la macro, allez dans la barre de menu en haut de l'écran VBE et cliquez sur "Run" puis sur "Run Sub / Userform".
Étape 6: Aller à Excel (ALT / F11) et voir ce qui est arrivé aux cellules A1, A2 et A3
Félicitations, vous avez exécuté et testé votre première macro. Aller à Excel et "Sheet1" et voir que ce que la macro ordonnait Excel à faire a été fait. La valeur de la cellule "A1" est 34, la valeur de la cellule "A2" est 66 et il y a une formule dans la cellule A3 qui somme les cellules A1 et A2.
Étape 7: Allez dans Excel et effacez les cellules A1, A2 et A3 de "Sheet1". Dans la barre de menu allez dans "Outil" et cliquez sur "Macros". Dans la fenêtre de dialogue, sélectionnez "ProFirst" et cliquez sur Exécuter.
Vous avez exécuté la macro à partir de la barre de menus d'Excel. Dans la leçon 9 sur les événements, vous découvrirez de nombreuses autres façons de démarrer une macro.
Remarque: vous ne pouvez pas modifier la police ou sa couleur dans la fenêtre de code. Votre saisie apparaît en noir, les commentaires apparaissent en vert, les mots réservés en bleu et lorsque vous faites une erreur, la couleur de la police devient rouge.
Remarque: pour de nombreux utilisateurs d'une version antérieure d'Excel, la roulette de la roulette de la souris ne fonctionne pas dans la fenêtre de code. Pour activer votre souris, téléchargez et installez le correctif gratuit offert dans le didacticiel téléchargeable.
Il y a beaucoup d'autres opérations que vous pouvez exécuter dans la fenêtre de code. Par exemple, vous pouvez tester une macro ligne par ligne (étape par étape), revenir en arrière sur quelques lignes et apporter des corrections, utiliser des points d'arrêt pour tester uniquement une partie d'une macro.
Dans la section 2 (leçons 11 à 23 de VBA), vous apprendrez le vocabulaire VBA pour écrire des macros.
- Leçon 5: Construction de macros dans Excel
VBA pour Excel Leçon 5: Développement de macros dans Excel
Remarque: Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur. Utilisez ALT / F11 pour ouvrir Visual Basic Editor comme vous l'avez appris dans la leçon 1.
La plupart des macros sont développées dans la fenêtre de code des modules. Dans le cadre de cet exercice, double-cliquez sur "Sheet1" dans la fenêtre de projet
Entrez sub proTest () sans utiliser un "S" majuscule comme début de "sub". Après avoir entré la parenthèse fermante, cliquez sur "Enter". Vous obtenez ces deux lignes de code:
Sous proTest ()
End Sub
VBE ajoute la ligne "End Sub" et met en majuscule le "S" de "Sub". Le VBE capitalise les lettres de manière appropriée lorsque le mot est correctement orthographié. C'est une fonctionnalité intéressante que vous devriez toujours utiliser lors de l'écriture de macros. Faites-en l'habitude de ne jamais utiliser de majuscules lors de l'écriture du code. De cette façon, chaque fois que VBE inattendu ne parvient pas à mettre une lettre en majuscule, vous saurez que quelque chose ne va pas.
Deux exceptions à votre utilisation cohérente des minuscules sont: (1), lorsque vous déclarez des variables (leçon 19); et (2), quand vous nommez des macros (comme vous l'avez fait ci-dessus). Vous verrez pourquoi dans les leçons suivantes.
Vous pouvez maintenant écrire une procédure dans les deux lignes de code ci-dessus. Par exemple, votre procédure VBA pourrait ressembler à ceci. Vous pouvez copier / coller la macro ci-dessous à partir de votre navigateur dans la fenêtre Code VBE ou la saisir. Assurez-vous que tout est présent, y compris les guillemets et les points, les parenthèses, les signes égaux et les espaces.
Remarque: Assurez-vous de copier / coller ce code dans un NOUVEAU classeur qui n'a pas été créé lors d'un exercice précédent.
Sous proTest ()
Feuilles ("Sheet1"). Sélectionnez
Plage ("C1"). Sélectionnez
Faire jusqu'à Selection.Offset (0, -2) .Value = ""
Selection.Value = Selection.Offset (0, -2) .Value & "" & Selection.Offset (0, -1)
Selection.Offset (1, 0) .Sélectionner
Boucle
Plage ("A1"). Sélectionnez
End Sub
La procédure ci-dessus va descendre la colonne "C" et assembler les prénoms de la colonne "A" et les noms de famille de la colonne "B" avec un espace entre les deux. Il effectuera cette tâche jusqu'à ce qu'il n'y ait plus de prénoms dans la colonne "A". Il va ensuite placer le curseur dans la cellule "A1".
Pour tester cette macro (procédure VBA), procédez comme suit:
Étape 1: Allez dans Excel (ALT / F11) et entrez les prénoms dans les cellules A1 à A5.
Étape 2: Entrez les noms de famille dans les cellules B1 à B5.
Étape 3: Revenez au VBE (ALT / F11) et cliquez dans la macro dans la fenêtre de code.
Étape 4: Dans la barre de menu, sélectionnez "Run / Run Sub / Userform".
Étape 5: Retournez à Excel et voir le résultat.
Vous pouvez tout effacer dans la colonne C Excel et réessayer avec plus de noms et de noms.
Essayez à nouveau en supprimant le prénom dans la cellule A3. Notez que la macro s'arrête sur la ligne 2.
- Leçon 6: Test des macros dans Excel
VBA pour Excel Leçon 6: Test des macros dans Visual Basic Editor pour Excel
Tester la procédure VBA étape par étape
REMARQUE: Pendant que vous exécutez la macro étape par étape, vous pouvez arrêter l'exécution à tout moment en cliquant sur le bouton d'arrêt dans la barre d'outils.
Le test est la partie la plus longue de tout projet VBA. Pendant le développement d'un projet, vous utiliserez 20% de votre temps à analyser et à concevoir, 15% à programmer et 65% à tester.
Pendant la phase de test, vous corrigerez les bugs, les fautes de frappe et les erreurs logiques. Plus important encore, vous améliorerez votre projet original, affinez-le, découvrez de meilleures façons de faire les choses et ajoutez du code.
Dans la leçon 4, vous avez créé votre première macro et l'avez testée à l'aide du bouton "Exécuter". Vous pouvez également tester une macro étape par étape.
Imprimez cette page, ouvrez Excel et ouvrez un nouveau classeur. Utilisez ALT / F11 pour ouvrir Visual Basic Editor comme vous l'avez appris dans la leçon 1.
Étape 1: Allez dans Excel et assurez-vous que les cellules A1, A2 et A3 de Sheet1 sont vides.
Étape 2: Dans VBE, accédez à la fenêtre Code de Sheet1 et copiez / collez la macro suivante:
Sous proFirst ()
Plage ("A1"). Valeur = 34
Plage ("A2"). Valeur = 66
Plage ("A3"). Formule = "= A1 + A2"
Plage ("A1"). Sélectionnez
End Sub
Étape 3: Cliquez n'importe où dans la macro et appuyez sur la touche F8 en haut de votre clavier. VBE met en évidence la première ligne de code en jaune.
Étape 4: Faites un clic droit sur la petite flèche jaune et voir apparaître un menu
Dans la leçon 4 du didacticiel téléchargeable sur VBA pour Excel, vous découvrirez ces éléments de menu précieux et tout ce que vous pouvez faire dans la fenêtre Code. Pour l'instant, finissons de tester cette macro étape par étape.
Étape 5: Appuyez sur "F8" une seconde fois. Aucune ligne n'a encore été exécutée et si vous allez à Excel, vous verrez que les cellules A1 à A3 sont encore vides. La prochaine fois que vous appuierez sur "F8", VBE exécutera la ligne surlignée en jaune.
Étape 6: Appuyez sur "F8" une troisième fois. La ligne surlignée en jaune est maintenant "Range (" A2 "). Value = 66". VBE a exécuté la ligne précédente "Range (" A1 "). Value = 34" a été exécuté, donc si vous allez à Excel (ALT / F11) vous verrez 32 dans la cellule A1.
Étape 7: Revenez à VBE (ALT / F11) et appuyez à nouveau sur "F8". Aller à Excel et voir ce qui s'est passé dans la cellule A2.
Étape 8: Revenez à VBE (ALT / F11) et appuyez à nouveau sur "F8". Allez dans Excel et voyez qu'il y a une formule dans la cellule A3.
Étape 9: Revenez à la VBE (ALT / F11) et appuyez à nouveau sur "F8", la cellule A1 est maintenant sélectionnée dans Excel.
Étape 10: Appuyez à nouveau sur "F8". Rien ne se passe dans Excel mais "End Sub" est surligné en jaune
Étape 11: Appuyez à nouveau sur "F8". Rien ne se passe dans Excel. Plus de lignes dans VBE sont surlignées en jaune.
La macro a été testée, le test est terminé.
Dans le code changer les adresses A1, A2 et A3 respectivement à B1, B2 et B3. Testez à nouveau la macro. Faites-le autant de fois que vous le souhaitez.
- Leçon 7: Macro Recorder dans Excel
VBA pour Excel Leçon 7: L'enregistreur de macros dans Excel 2007 à 2010
Remarque: Si vous utilisez Excel 1997 à 2006, consultez la leçon 7 ici
REMARQUE IMPORTANTE 1: Il n'y a aucun risque pour votre ordinateur ou Excel lors des exercices ci-dessous. À tout moment, si vous vous sentez mal à l'aise, fermez Excel sans enregistrer le classeur et réessayez plus tard.
NOTE IMPORTANTE 2 (pour Excel 2007 SEULEMENT): Vous ne pouvez effectuer les exercices ci-dessous que si vous avez installé VBA pour Excel sur votre ordinateur. Si vous n'avez pas, cliquez ici.