Excel vba
This presentation is the property of its rightful owner.
Sponsored Links
1 / 48

EXCEL - VBA PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on
  • Presentation posted in: General

EXCEL - VBA. Hafida Le Cloirec. I – LES BASES A – Environnement de programmation. Quand vous ouvrez Excel, une vue standard ressemble à ceci:. A- environnement de programmation.

Download Presentation

EXCEL - VBA

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Excel vba

EXCEL - VBA

Hafida

Le Cloirec


I les bases a environnement de programmation

I – LES BASESA – Environnement de programmation

  • Quand vous ouvrez Excel, une vue standard ressemble à ceci:


A environnement de programmation

A- environnement de programmation

  • L’éditeur de Visual Basic n’est pas présent par défaut. Pour l’activer, cliquez sur le bouton start en haut à gauche, puis « Options Excel » et cochez « Afficher l’onglet Développeur dans le ruban ».


A environnement de programmation1

A- environnement de programmation

L’éditeur Visual Basic est l’environnement dans lequel vous pouvez programmer en VBA.

Icône Visual basic dans le ruban « Développeur »

ALT-F11

Trois fenêtres principales dans le VBE

Exploreur de projet

Properties

Code

Deux autres fenêtres dans le VBE, utilisées pour le débogage

Exécution

Espions


A environnement de programmation2

A- environnement de programmation

Fenêtre de Code

Exploreur de

Projet

Fenêtre

Propriétés

Fenêtre

Espions

Fenêtre

Exécution


Objets

OBJETS

  • Les objects dans Excel incluent :

    • Les classeurs et les feuilles

    • Les Cellules et plages de cellules

    • Les graphiques

  • Il y a une hiérarchie dans les objets :

    • Les classeurs contiennes des feuilles

    • Les feuilles contiennent des plages de données

    • Les plages de données contiennent des cellules

  • Les objets sont manipulés dans VBA grâce :

    • Aux Propriétés = valeur qui permet de décrire ou formatter un objet

    • Aux Méthodes = arguments utilisés pour effectuer une action sur l’objet


Objets1

OBJETS

Programmation orientée « Objet »

  • Manipulation d’objet avec certains attributs

Ex: une feuille Excel

Evénement

Ex: Cliquer sur la feuille

Propriétés

Ex: Nom de la feuille

Méthodes

Ex: Ajouter/supprimer une feuille

Collection

Ex: Ensemble des feuilles d’1 fichier Excel

Ex: une feuille Excel contient des cellules

  • Collection : Objet contenant des objets

  • Exemple simple :


Objets2

OBJETS

  • Propriétés

  • Si vous pouviez programmer un ballon, son code Visual Basic ressemblerait au « code » suivant, qui définit les propriétés d'un ballon.

  • Balloon.Color = Red // Balloon.Diameter = 10 // Balloon.Inflated = True

    • Méthodes

  • Les méthodes d'un ballonsontappelées de la manièresuivante :

  • Balloon.Inflate // Balloon.Deflate // Balloon.Rise(5)

  • L'ordre est similaire à celui d'une propriété : l'objet (un nom), suivi de la méthode (un verbe). Dans la troisième méthode, un élément supplémentaire, appelé argument, spécifie la hauteur d'élévation du ballon. Certaines méthodes auront un ou plusieurs arguments pour décrire plus avant l'action à effectuer.

    • Événements

  • Le ballon peut réagir à un événement de la manière suivante :

  • C) Librairie

    • Ensemble des Objets/Evénements/Propriétés/fonctions disponibles

    • Accessible dans outils/références 

    • F1 : Aide en ligne


    L exploreur de projet

    L’exploreur de projet

    • Liste tous les projets appartenant au classeur ouvert.

    • Chaque classeur possède un projet et chaque projet peut avoir différentes parties

      • Workbook et worksheets (feuilles)

      • Modules

      • Forms

    • Cliquer sur Insertion > Module ou Insertion > User Form pour ajouter une nouveau module ou une nouveau formulaire au projet courant. Vous pouvez aussi utiliser le menu Insertion de la barre d’outil.


    La fen tre de propri t s

    La fenêtre de propriétés

    • Contient des informations détaillées sur chaque partie du projet sélectionnées dans l’explorateur.

    • Les formats et les noms peuvent être modifiés pour les feuilles et les classeurs.

    • Les propriétés sont très importantes pour les User Form :

      • Formatage

      • Position

      • Image

      • Barres de défilement

      • Comportement


    La fen tre de code

    La fenêtre de code

    • Affiche le code VBA pour la partie sélectionnée de l’exploreur de projet.

    • Quand vous enregistrez des macros, elles sont automatiquement créées sous forme de code VBA dans l’éditeur de Visual Basic.

    • Il y a trois types de macros ou procédures

      • Procédures Sub

      • Procédures Function

      • Procédures Evènement


    Fen tre ex cution et espions

    Fenêtre Exécution et Espions

    • Ces deux fenêtres servent à déboguer.

    • La fenêtre Exécution sert à exécuter le code que l’on y tape, quel qu’il soit.

    • La fenêtre Espions sert à présenter les valeurs de variables.

    • Utiliser le menu Affichage pour visualiseroucachercesfenêtres.


    L explorateur d objets

    L’explorateur d’objets

    • Présente une liste de propriété et méthodes de tous les objets Excel qui peuvent être manipulés en VBA.

    • Il y a des grandes categories qui regoupent des objets variés.

    • Classes = groupes d’objets reliés.

    • Librairies = collections de classes d’objets VBA et Excel

    • Membres = propriétés, méthodes, et constantes liées à une classe d’objets donnée.

    • Menu Affichage > Explorateur d’objets ou icône de la barre d’outil

    • Toutes les classes contenant l’objet recherché sont présentes dans la fenêtre du haut.

    • Tous les membres de la classe sélectionnée sont présentés dessous.


    Enregistrer des macros

    Enregistrer des macros

    • Les macros sont techniquement définies comme des unités de code VBA.

    • Les macros sont une façon d’automatiser une série d’actions dans une application Excel.

    • Les macros peuvent être créées soit directement sous forme de code VBA dans l’éditeur de Visual Basic, soit via Excel.

    • Pour enregistrer une macro, nous devons connaître exactement l’enchaînement des actions que l’on veut effectuer puis utiliser l’enregistreur de macro.

    • Assurez-vous que le ruban développeur est actif

      • Sélectionnez le bouton Office (en haut à gauche)

      • Cliquez sur Options Excel.

      • Dans l’onglet Standard, cochez “Afficher l’onglet Développeur dans le ruban” et cliquez sur OK.

      • Le ruban Développeur est maintenant visible dans Excel.


    Exemple 1

    Exemple 1

    • “Excel VBA I.xls” sous http://hafida.aityahya.free.fr/

    • Enregistrer une macro qui copie et colle des données.

    • Un vendeur souhaite envoyer les informations des trois premières colonnes et de la dernière colonne de la plage de données au journal.


    Exemple 1 pr paration

    Exemple 1 : préparation

    • Tout d’abord, il faut revoir les étapes qu’il faut suivre lors de l’enregistrement de la macro

      • Sélectionner les trois premières colonnes du tableau (C4:E14)

      • Copier (CTRL+C, clic-droit et Copier, ou menu accueil/presse-papier/copier)

      • Placer le curseur dans la cellule C20

      • Coller (CTRL+V, clic-droit et Coller, ou via le menu)

      • Sélectionner la dernière colonne (K4:K14)

      • Copier

      • Placer le curseur dans la cellule F20

      • Coller

      • Placer le curseur dans la cellule A1

      • Appuyer sur la touche <ESC>


    Exemple 1 enregistrement

    Exemple 1 : enregistrement

    • Maintenant nous sommes prêt à enregistrer la macro

      • Bouton“Enregistrerune macro”du menu Code dans le RubanDeveloppeur

    • Quand la boîte de dialogue d’enregistrementapparaît, donner un nom à la macro.


    Exemple 1 stop

    Exemple 1 : Stop

    • Quand vous avez commencé à enregistrer, notez que le bouton enregistrer une macro se transforme en bouton Arrêter l’enregistrement.

    • Après avoir terminé les différentes étapes, vous pouvez arrêter d’enregistrer.


    Exemple 1 ex cuter

    Exemple 1 : Exécuter

    • Quand vous avez enregistré une macro, vous pouvez la lancer pour vous assurer qu’elle fonctionne correctement.

      • Bouton Macros à partir du ruban Développeur

      • Sélectionner la macro désirée et cliquer sur Executer.


    Exemple 1 r sultats

    Exemple 1 : Résultats

    • Nous pouvons constater que la macro fonctionne correctement.


    Exemple 1 code vba

    Exemple 1 : Code VBA

    • Comme nous l’avons appris plus tôt, à chaque fois que l’on enregistre une macro dans Excel, du code est généré automatiquement.

    • Regardons le code qui a été généré pour cette macro

      • Aller à la fenêtre VBE

      • Un module a été créé dans l’exploreur de projet

      • Selectionner le module pour visualiser le code généré dans la fenêtre de Code


    Exemple 1 code vba1

    Exemple 1 : Code VBA

    • C’est la phrase initiale de touteprocédure de type sub.

      • La méthodeSelectde l’objetRangepermet de sélectionnerunerangéespécifique de cellules.

      • La méthodeCopyestutiliséesurl’objet Selection.

      • La méthodePasteestutiliséesurl’objetActiveSheet (i.e. feuille active).

      • Cesétapessontrépétées pour copier et coller la dernièrecolonne.

      • Cettedernièreétapeestajoutée pour éviter de laisser les cellullessélectionnées.

    • C’est la dernièré phrase de touteprocédure sub.

    SubCarCopyPaste()

    Range("C5:E14").Select

    Selection.Copy

    Range("C20").Select

    ActiveSheet.Paste

    Range("K5:K14").Select

    Selection.Copy

    Range("F20").Select

    ActiveSheet.Paste

    Range("A1").Select

    End Sub


    D buter en vba

    Débuter en VBA

    • Puisque nous pouvons étudier le code VBA généré quand nous enregistrons une macro, il est facile d’apprendre comment créér une macro similaire directement en VBA en copiant le code généré.

    • Nous allons d’abord apprendre comment utiliser les fonctions Trier et Filtrer en VBA en enregistrant d’abord une macro puis en utilisant le code généré pour créer des macros similaires en VBA.


    Exemple 2

    Exemple 2

    • Supposons qu’il y ait une base de données listant les destinations de vol, leur nombre d’escales, leur classe et leur prix pour l’aéroport de Miami.

    • Nous voulons être capable de filtrer ces informations de la façon suivante :

      • Voir les vols pour Pékin

      • Voir les vols pour Hong Kong

      • Voir tous les vols

    • Nous voulons aussi pouvoir trier les données par

      • Nombre d’escales

      • Prix


    Exemple 2 filtrer

    Exemple 2 : filtrer

    • Nous allons commencer par enregistrer une macro qui filtre les données afin de visualiser uniquement les vols pour Pékin.

    • Pour préparer l’enregistrement de la macro filtrant les données de la table, revoyons les étapes que nous allons effectuer

      • Sélectionner les données (B3:E15)

      • Ruban Données > Menu Trier et Filtrer > Filtrer

      • Selectionner le bouton déroulant de la colonne “Destination”

      • Filtrer les vols pour Pékin

      • Sélectionner la cellule A1


    Exemple 2 d excel vbe

    Exemple 2 : d’Excel à VBE

    • Nous pouvons vérifier cette macro enregistrée pour nous assurer qu’elle fonctionne.

    • Maintenant allons dans le VBE pour visualiser le code généré.


    Exemple 2 d excel vbe1

    Exemple 2 : d’Excel à VBE

    • Maintenantque nous connaissons la structure basique du code, nous pouvonssimplement le modifier pour qu’ilexécute des filtressupplémentaires

    SubViewBeijingFlights()

    Range("B3:E15").Select

    Selection.AutoFilter Field:=1, Criteria1:="Beijing"

    Range("A1").Select

    End Sub

    • Le nom de la procéduredoitêtremodifié pour chaque nouvelle macro

      • La méthodeAutoFilterestutiliséesur la mêmesélection pour générer les listesdéroulantes de filtrage

      • Field:=1 correspond à la colonne “Destination”, on peut modifier cettevaleur

      • Criteria1:=“Beijing”est la valeursurlaquelle on filtre, on peutaussi la modifier


    Exemple 2 nouvelles macros partir de vba

    Exemple 2 : Nouvelles macros à partir de VBA

    • Nous pouvonsmaintenantcréerune macro pour visualiser les vols pour Hong Kong puis pour voirtous les vols en utilisant le code de la macro enregistrée.

    • ------------------------------------------------------

      • SubViewHongKongFlights()

      • Range("B3:E15").Select

      • Selection.AutoFilter Field:=1, Criteria1:="Hong Kong"

      • Range("A1").Select

      • End Sub

      • ------------------------------------------------------

      • SubViewAllFlights()

      • Range("B3:E15").Select

      • Selection.AutoFilter Field:=1

      • Range("A1").Select

      • End Sub

      • ------------------------------------------------------


    Exemple 2 trier

    Exemple 2 : Trier

    • Nous allonsmaintenantenregistrerune macro pour trier les données par nombred’escales.

    • Etapes :

      • Sélectionner les données (B3:E15)

      • Données> Trier

      • Sélectionner la colonne “Stops” dans la liste de tri

      • SélectionnerDu plus grand au plus petit (i.e. Descendant) pour l’ordre

      • Sélectionner la cellule A1

    • On peut tester cette macro enregistrée pour vérifierqu’ellefonctionne.


    Exemple 2 d excel vbe2

    Exemple 2 : D’Excel à VBE

    • Allonsdans le VBE pour visualiser le code plutôt long généré par l’enregistreur.

    • Ce code peut être modifié de la façon suivante pour produire exactement le même résultat.


    Exemple 2 cr er un nouveau code

    Exemple 2 : créer un nouveau code

    • Maintenantque nous connaissons la structure de base de ce code, on peut le modifier pour accomplird’autrestris.

    Sub SortByStops()

    Range("B3:E15").Select

    Selection.Sort Key1:=Range("C4"), Order1:=xlDescending

    Range("A1").Select

    End Sub

    • Le titre de la procédure change pour chaque nouvelle macro

      • La méthode Sortest utilisée sur la même sélection

      • Key1:=Range(“C4”) fait référence à la colonne “Stops”

      • Order1:=xlDescending correspond à l’ordre dans lequel les données vont être triées


    Exemple 2 nouvelle macro partir de vba

    Exemple 2 : nouvelle macro à partir de VBA

    • Créerune macro pour trier par prix en utilisant le code de la macro enregistrée.

      ------------------------------------------------------

      SubSortByPrice()

      Range("B3:E15").Select

      Selection.Sort Key1:=Range("E4"), Order1:=xlDescending

      Range("A1").Select

      End Sub

      ------------------------------------------------------


    Les proc dures v nementielles

    Les procédures évènementielles

    • LesProcéduresévènementconnectent les évènementliés à une action ou à un objet Excel à une macro VBA spécifique.

      • Click

      • Change

      • Activate

    • Pour trouveruneliste de procéduresévènementdisponibles et applicablesdans le VBE, regardezdans le haut de la fenêtre de code.

      • Choisir un objet dans la listed’objet

      • Choisir un évènement de la listed’évènements

    • Par exemple, l’évènement Activate peutêtreutilisésurl’objet Worksheet.

    • Unefoisqu’un objet et évènementestsélectionné, uneprocédure sub estinitiée.


    La bo te outils de contr les

    La boîte à outils de contrôles

    • Développeur>Contrôles>Insérercontientunelisted’objets pour lesquels des procéduresévènementpeuventêtreassociées.

      • Développeur>Contrôles>Insérer

      • Icône de la barred’outilsVBA

      • Cliquer et déposer de la barred’outils à la feuille


    Propri t s des contr les

    Propriétés des contrôles

    • Il y a de nombreuxcontrôlesdisponibles à ajouterdans la feuille

      • Texte, étiquettes, boutons

      • Zone de listedéroulante, zone de liste, case à cocher, case d’option

    • Chaquecontrôlepossèdesapropreliste de propriétés qui peuventêtremodifiées

      • Name = nom du contrôle, il sera utilisé pour l’identifierdans VBA (ex: cmdButton)

      • Caption = texte qui vaapparaîtresur le contrôle (ex:“Click Here”)

    • La procédureévènementClickpeutmaintenantêtreassociée à cenouvel objet en appelant la procédure

      • SubcmdButton_Click()


    Exemple 2 bouton

    Exemple 2 : bouton

    • Ajouter un bouton qui permettrad’exécuterune des macros de filtragequel’on a préalablementécrite et appliquonslui les propriétéssuivantes :

      • Name = cmdHongKong

      • Caption = “View Hong Kong Flights”

      • TakeFocusOnClick= False


    Exemple 2 bouton1

    Exemple 2 : bouton

    • On peutmaintenant copier-coller le code de cette macro à partir du module à une nouvelle procédure sub de la feuille Example 2 comme suit.

      SubcmdHongKong_Click()

      Range("B3:E15").Select

      Selection.AutoFilter Field:=1, Criteria1:="Hong Kong"

      Range("A1").Select

      End Sub

    • Cetitrepeutêtregénéréautomatiquementsil’onsélectionne le boutoncmdHongKong de la listed’objetspuisquel’onsélectionneClick de la liste des évènements.


    Dessiner des contr les

    Dessiner des contrôles

    • Nous pouvonsdessiner un boutonplutôtqued’utilisercelui de la boîte à outils.


    Dessiner des contr les1

    Dessiner des contrôles

    • Par Exemple: Insérer> Formes > Rectangle

    • Créer un rectangle et luiajouter du texte en cliquantdroit et en choisissant “Modifier le texte”, puisformater le rectangle.


    Assigner une macro

    Assigner une macro

    • Vouspouvezcliquerdroitsur le rectangle et sélectionner “Affecter une macro” dans la liste.

    • Uneliste de toutes les macros du classeurouverts’affiche, sélectionnez en une et votreboutonestalorsactivé.


    Exemple 2 bouton2

    Exemple 2 : bouton

    • Nous pouvonsmaintenantcréer des boutons pour chacune des macros développéesprécédemment.

    • Assignezune macro pour chacun de cesboutons.


    Personnaliser la barre d outils acc s rapide bar

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Excel 2010 estcentrésur le concept de rubans, plutôtquesurcelui de Menus et barresd’outils des versions précédentes.

    • La personnalisation et programmation des rubansest beaucoup plus compliquée.

    • Cependant, une alternative aux barresd’outilsd’Excel 2010 est la barred’outilaccèsrapide.

    • La barred’outilsAccèsRapidepermet de créer d’un bouton pour lancer une macro.


    Personnaliser la barre d outils acc s rapide bar1

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Cliquersur la listedéroulanteprès de la BAR et sélectionner “Autrescommandes…”.


    Personnaliser la barre d outils acc s rapide bar2

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Sélectionner Macros en haut à gauche.


    Personnaliser la barre d outils acc s rapide bar3

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Dans la liste de Macros, sélectionner la/les macro(s) quevousvoulezinclure et les ajouter.


    Personnaliser la barre d outils acc s rapide bar4

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Pour changer l’icône, cliquersur Modifier, sélectionner la forme et cliquerOK.


    Personnaliser la barre d outils acc s rapide bar5

    Personnaliser la barre d’outils Accès rapide (BAR)

    • Dans le menu de personnalisation, sélectionner le fichier et cliquer OK.


    Personnaliser la barre d outils acc s rapide bar6

    Personnaliser la barre d’outils Accès rapide (BAR)

    • La barred’outilvamaintenant se présentercomme suit.


  • Login