VBA Excel 2016 Programmer sous Excel : Macros et langage VBA

Documents pareils
Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Formation VBA 3 Interagir

Visual Basic for Applications

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

FORMATION au VBA Pour EXCEL. Version 2007 & +

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Rapport de Mini-Projet en ArcGIS Engine

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Algorithmique et programmation : les bases (VBA) Corrigé

Organigramme / Algorigramme Dossier élève 1 SI

TD3 - Facturation avec archivage automatisé

A. Introduction. Chapitre 7

Comment créer et utiliser une fonction

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Préparation à l examen EFA en Macro

.NET - Classe de Log

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

1 TD 2 : Construction d'une chier Acrobat et envoi par

TABLEAU CROISE DYNAMIQUE

Listes de validation dans OpenOffice Calc

Cours Informatique Master STEP

Le Registre sous Windows 8 architecture, administration, script, réparation...

Les différents types de relation entre les tables

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Créer le schéma relationnel d une base de données ACCESS

Access 2007 FF Access FR FR Base

Paginer les données côté serveur, mettre en cache côté client

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

FICHE 17 : CREER UN SITE WEB

Débuter avec OOo Base

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Gestion de stock pour un magasin

Programmation avec Microsoft Visual Basic. NET. Réponses aux questions Solutions des exercices

SQL Server 2012 Administration d une base de données transactionnelle

Travaux pratiques Détermination de la capacité de stockage des données

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

Comment faire des étiquettes

Insérer des images dans Base

Introduction à Business Objects. J. Akoka I. Wattiau

Tâches planifiées. Chapitre Introduction

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Connexion à SQL server

Programmer en JAVA. par Tama

Java Licence Professionnelle CISII,

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Formations 2015 Bureautique

TABLEAU CROISE DYNAMIQUE

Cours d algorithmique pour la classe de 2nde

Windows 8 Installation et configuration

Programmation VBA. Excel Daniel-Jean David. et Groupe Eyrolles, 2014, ISBN :

MODE D EMPLOI DU MODULE D E-COMMERCE

CHAPITRE 3 : INTERNET

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Comment sauvegarder ses documents

Recherche dans un tableau

Guide d installation CLX.PayMaker Office (3PC)

Instructions préliminaires P2WW FR Préface

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Mettre en place un accès sécurisé à travers Internet

Mon aide mémoire traitement de texte (Microsoft Word)

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Notions fondamentales du langage C# Version 1.0

Présentation du PL/SQL

FANTEC DB-229US Manuel de l'utilisateur

Examen Médian - 1 heure 30

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Sage CRM. Sage CRM 7.3 Guide du portable

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

Initiation à LabView : Les exemples d applications :

TAGREROUT Seyf Allah TMRIM

manuellement. Le prototype ayant obtenu des résultats satisfaisants aux différents essais de labour est validé sur le plan suivant :

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

INP E N S A T T O U L O U S E ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß. 7UDYDLO'LULJp

FANTEC HDD-Sneaker MANUEL D'UTILISATION. Comprend: Guide d'installation de materiel Disque dur Formatage manuel PCClone EX Guide d'installation

Préconisations Portail clients SIGMA

1. Structure d'un programme FORTRAN 95

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

supérieure Vous ne connaissez pas le numéro de version de votre application?

Guide d'installation rapide TFM-560X YO.13

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Fonctions pour la France

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Créer vos données sources avec OpenOffice, adieu Excel

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Gestionnaire de procédure Guide rapide

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Transcription:

Editions ENI VBA Excel 2016 Programmer sous Excel : Macros et langage VBA Collection Ressources Informatiques Extrait

301 Chapitre 9 Gestion des événements 1. Présentation Gestion des événements Un événement est une action utilisateur ou système reconnue par un objet Microsoft Excel. Il déclenche la procédure événementielle associée à l'événement de l'objet activé. Les procédures événementielles vous permettent d'associer un code personnalisé en réponse à un événement qui se produit sur un objet Excel (classeur, feuille, formulaire, graphique...).

302 VBA Excel 2016 Programmer sous Excel : macros et langage VBA 2. Écriture des événements 2.1 Événements de classeur, de feuille ou de formulaire Vous pouvez accéder aux procédures événementielles associées à un objet de la façon suivante : ddans la fenêtre Explorateur de projet, double cliquez sur l'objet souhaité (classeur, feuille, ou formulaire) afin de faire apparaître la fenêtre de code correspondante. douvrez la liste déroulante de gauche de la fenêtre de code et sélectionnez Workbook, Worksheet ou UserForm en fonction de l'objet sélectionné. dvous pouvez alors sélectionner l'un des événements liés à l'objet sélectionné dans la liste déroulante de droite afin de lui associer un code personnalisé. Remarque Vous pouvez à tout moment désactiver l'exécution des procédures événementielles en affectant False à la propriété EnableEvents de l'objet Application. Editions ENI - All rights reserved

Gestion des événements Chapitre 9 303 Exemple Cet exemple montre comment obtenir l'historique de tous les liens hypertextes qui ont été visités à partir de la feuille de calcul active. Résultat dans Excel :

304 VBA Excel 2016 Programmer sous Excel : macros et langage VBA 2.2 Événements de l'objet Application Trois étapes sont nécessaires à l'écriture et à l'exécution des événements de l'objet Application. Étape 1 dinsérez un module de classe : Insertion - Module de classe ou ouvrez la liste et cliquez sur Module de classe. dune fois le module inséré, nommez-le. Exemple Nommez le module de classe ObjApplication. Étape 2 ddans le module de classe, créez un objet Application par le code suivant : Public WithEvents NomObjet As Application Exemple Création de l'objet appelé omonappli en tant qu'application. Public WithEvents omonappli As Application L'objet ainsi créé devient disponible dans la liste de gauche du module. dsélectionnez l'objet ainsi créé dans la liste de gauche du module puis sélectionnez l'événement attendu dans la liste de droite. Écrivez le code des procédures à générer. Editions ENI - All rights reserved

Gestion des événements Chapitre 9 305 Exemple Création de deux procédures événementielles : la première concerne l'insertion d'une nouvelle feuille, la seconde la création d'un nouveau classeur. Public WithEvents omonappli As Excel.Application Private Sub omonappli_workbooknewsheet _ (ByVal Wb As Workbook, ByVal Sh As Object) Dim onomfeuille As String ' A chaque ajout de feuille, on demande à l'utilisateur ' de saisir un nom qui sera ensuite affecté à la feuille insérée ' après les feuilles existantes onomfeuille = InputBox("Entrez le nom de la feuille") ActiveSheet.Name = onomfeuille ActiveSheet.Move After:=Sheets(Sheets.Count) End Sub Private Sub omonappli_newworkbook(byval Wb As Workbook) Dim inbfeuilles As Integer Dim inbactuel As Integer Dim idifférence As Integer ' Pour chaque nouveau classeur, ' on demande à l'utilisateur le nombre de feuilles ' Suivant les cas, on ajoute ou on supprime des feuilles Do inbfeuilles = Application.InputBox(Title:="", _ Prompt:="Nombre de feuilles?", Default:="3", Type:=1) Loop While inbfeuilles = False inbactuel = Sheets.Count idifférence = inbactuel - inbfeuilles ' Suppression des feuilles en trop ' Suppression des messages d'alerte afin de ne pas ' avoir de message lors de la suppression de feuilles Do While idifférence > 0 Application.DisplayAlerts = False Sheets.Item(iDifférence).Select ActiveWindow.SelectedSheets.Delete idifférence = idifférence - 1 Loop ' Ajout de feuilles si nécessaire ' Les événements sont désactivés afin de ne pas avoir ' à saisir le nom des nouvelles feuilles Do While idifférence < 0 Application.EnableEvents = False Sheets.Add

306 VBA Excel 2016 Programmer sous Excel : macros et langage VBA idifférence = idifférence + 1 Loop ' Réactivation des événements et alertes Application.EnableEvents = True Application.DisplayAlerts = True End Sub Étape 3 dactivez un module quelconque et connectez l'objet déclaré dans le module de classe avec l'objet Application par les instructions suivantes : Dim onomvariable As New NomModuleDeClasse Sub NomProcédure () Set onomvariable.nomobjet = Application End Sub Exemple Ajoutez le code suivant dans le module Déclarations. Option Explicit Dim oapp As New ObjApplication Sub InitializeMonAppli() Set oapp.omonappli = Application End Sub Enfin appelez la procédure InitializeMonAppli lors de l'ouverture du classeur (module de classe ThisWorkbook). Private Sub Workbook_Open() InitializeMonAppli End Sub Lorsque ce classeur sera ouvert, les procédures événementielles créées au cours de l'étape 2 s'exécuteront automatiquement lors de l'ajout de classeurs ou de feuilles. Ces procédures seront désactivées à la fermeture du classeur. Editions ENI - All rights reserved

Editions ENI VBA Excel 2016 Créez des applications professionnelles Exercices et corrigés Collection Les TP Informatiques Extrait

énoncé Chapitre 4 Structures de contrôle Structures de contrôle Chapitre 4 VBA Excel 2016 Durée : 1 heure 55 Mots-clés condition, choix, test, alternative, branchement conditionnel, compteur, itération, incrémenter, décrémenter, sortie Objectifs Maîtriser les structures de décision afin de tester des conditions puis effectuer des actions différentes selon le résultat obtenu. Maîtriser les instructions d'itération qui, associées aux instructions conditionnelles, permettent d'écrire du code Visual Basic pour la prise de décision et la répétition des actions. Vous retrouverez ces structures dans la suite du livre. Dans ce chapitre, nous nous limitons à l'emploi des boîtes de dialogue déjà rencontrées. Prérequis Pour valider les prérequis nécessaires, avant d'aborder le TP, répondez aux questions ci-après (certaines questions peuvent nécessiter plusieurs réponses) : 1. Les structures suivantes sont des structures de décision : a. If... Then... Else... End If b. Do... Loop c. Select Case... Case... End Select 2. Résultat = IIf(7 / 2 > 3, IIf(2.8 * 3.3 < 11, "X", "Y"), "Z") La variable Résultat contient la valeur : a. X b. Y c. Z 65

VBA Excel 2016 - Créez des applications professionnelles Les TP Informatiques 3. Les instructions suivantes appartenant chacune à une structure de contrôle différente sont correctes : a. Case If N1 > N2 b. Case A, B, C c. Case 1 to 10 d. Case Nombre, Is > 50 4. Le mot-clé ElseIf : a. peut apparaître de suite après une clause Else. b. est facultatif. c. peut être utilisé plusieurs fois dans un bloc If. 5. Répétition d'instructions tant qu'une condition a la valeur True : a. For Each... Next b. For... Next c. Do... Loop d. While... Wend e. With... End With 6. Utilisation d'un compteur pour exécuter des instructions un certain nombre de fois : a. For Each... Next b. For... Next c. Do... Loop d. While... Wend e. With... End With 7. Répéter un groupe d'instructions pour chaque élément d'un tableau ou d'une collection : a. For Each... Next b. For... Next c. Do... Loop d. While... Wend e. With... End With 66

énoncé Structures de contrôle Chapitre 4 8. Répéter un groupe d'instructions le nombre de fois indiqué : a. For Each... Next b. For... Next c. Do... Loop d. While... Wend e. With... End With 9. Exécuter une série d'instructions appliquées à un seul objet ou à un type défini par l'utilisateur : a. For Each... Next b. For... Next c. Do... Loop d. While... Wend e. With... End With Corrigé p. 249 Énoncé 4.1 Vérifier que la saisie est numérique Exercice 1 Durée estimative : 10 minutes Créez la procédure ContrôleSaisie qui propose une boîte de saisie et vérifiez qu'il s'agit d'un nombre. Si c'est le cas, effectuez l'opération qui consiste à multiplier le nombre par lui-même, sinon affichez un message. Exemple : 67

VBA Excel 2016 - Créez des applications professionnelles Les TP Informatiques Indice Utilisez la fonction IsNumeric pour tester la saisie. Exercice 2 Durée estimative : 5 minutes Complétez la procédure précédente qui vérifie que l'utilisateur a cliqué sur le bouton OK. Dans le cas contraire, affichez un message. Exemple : Corrigé p. 249 Énoncé 4.2 Dire au revoir Durée estimative : 5 minutes Complétez la procédure AuRevoir. Celle-ci propose une boîte de dialogue demandant si l on souhaite quitter Excel. Elle affiche le message "A bientôt" si l'utilisateur clique sur le bouton Oui, et le message "Poursuivons" sinon. Exemple : 68

énoncé Structures de contrôle Chapitre 4 Sub AuRevoir() Dim strmessage As String Dim intstyle As Integer Dim intchoix As Integer strmessage = "Souhaitez-vous quitter Excel?" intstyle = vbyesno + vbdefaultbutton2... = MsgBox(strMessage, intstyle) If... = vbyes Then MsgBox "A bientôt."... MsgBox "Poursuivons."... End Sub Indice Voici un extrait de l'aide VBA en ligne : Corrigé p. 250 69

VBA Excel 2016 - Créez des applications professionnelles Les TP Informatiques Énoncé 4.3 Contrôler la saisie d'une consonne ou voyelle Durée estimative : 10 minutes Créez la procédure ConsonneVoyelle qui demande de saisir une voyelle ou une consonne. Affichez un message selon la saisie : "Voyelle", "Consonne" ou un message approprié en cas d'erreur. Exemple : Indice Pour tester la lettre en majuscule, on effectuera la transformation suivante : varchoix = VBA.UCase(varChoix) 70 Corrigé p. 250 Énoncé 4.4 Afficher un message selon l'âge et le genre Durée estimative : 15 minutes Créez la procédure VotreAge qui demande le sexe et l'âge de l utilisateur. Les messages seront différents selon qu'il s'agisse d'un homme ou d'une femme. Prenez également en considération l'abandon de la saisie et la saisie de lettres pour l'âge. 0-17 ans : Gamin 18-30 ans : Vous êtes jeune 31-50 ans : Vous êtes encore jeune > 50 ans : Vous commencez à vieillir