Bienvenue au cours en Excel Faisons connaissance Etudiants se présentent Nom, Prénom Avez-vous déjà fait des macros Excel? Avec-vous déjà programmé avec Excel? Avez-vous déjà programmé avec d'autres langages informatiques? Enseignant se présente Nguyen Vi CAO Slide No : 2 HEG - - Nguyen Vi CAO 1
Contexte et orientations du cours Le cours programmation en Excel Dure une demi-journée (relativement court) Se concentrer sur les concepts et les instructions de base Est adressé aux économistes d'entreprise plus orienté vers la gestion que la technique Fait partie de l'option Finance et Gestion des Risque Faire une application simple dans le domaine financier Nguyen Vi CAO Slide No : 3 Démarche adoptée Le cours s'appuie sur l'amélioration progressive d'une application financière simple Etape 1: partir avec un 1 er modèle contenant des formules Etape 2: automatiser une tâche par une macro Etape 3: introduire l'interaction avec l'utilisateur Etape 4: remplacer les formules par des programmes Etape 5: faire un modèle dynamique par programmation A chaque étape, des éléments théoriques sont présentés en alternance avec la pratique Nguyen Vi CAO Slide No : 4 HEG - - Nguyen Vi CAO 2
Objectifs du cours Savoir Les concepts de base du langage Les instructions souvent utilisées en Faire une application financière simple en Par la suite Utiliser l'exemple vu au cours Faire des applications plus complexes en Nguyen Vi CAO Slide No : 5 Bibliographie RIVA Fabrice, 2005,«Applications financières sous Excel en Visual Basic», Economica BIDAULT Mikaël, 2005, «Microsoft Excel & XP», CampusPress Nguyen Vi CAO Slide No : 6 HEG - - Nguyen Vi CAO 3
1 er Modèle Excel (feuille de calcul avec données et formules) 1 er modèle Excel Bien souvent, une feuille de calcul avec Des zones contenant des données et paramètres Des zone contenant des formules Qui utilisent les références absolues et/ou relatives Qui utilisent des fonctions disponibles dans Excel Qui permettent d'obtenir des résultats On y ajoute éventuellement des graphiques, etc. Mais il n'y a pas de programmations Nguyen Vi CAO Slide No : 8 HEG - - Nguyen Vi CAO 4
Exemple: Le modèle Epargne0 Les constantes le nombre de périodes Les données (variables) Le capital initial Le taux d'intérêt La conversion en monnaie étrangère ou non Le taux de change Les formules permettent de calculer Le capital final en Frs Le capital final en monnaie étrangère si cette option est choisie Le capital en Frs à la fin de chacune des périodes de placement Nguyen Vi CAO Slide No : 9 2 ème modèle Excel (avec utilisation des Macros ) HEG - - Nguyen Vi CAO 5
2 ème modèle Excel avec utilisation des macros Il est possible d'enregistrer la séquence des opérations effectuées avec le clavier et la souris dans une macro L'exécution de la macro déclenche automatique la séquence des opérations enregistrées C'est un moyen rapide pour automatiser les tâches répétitive Cette automatisation ne demande pas de connaissance en programmation Nguyen Vi CAO Slide No : 11 Exercice: le modèle Epargne1 Ouvrir le modèle Epargne0 L enregistrer sous le nom Epargne1 Enregistre une macro nommée Epagne permettant de sélectionner les cellules contenant le capital initial, le taux d'intérêt et la conversion en devise Effacer le contenu des ces cellules Affecter cette macro à un bonton Tester le fonctionnement de la macro avec le bouton Nguyen Vi CAO Slide No : 12 HEG - - Nguyen Vi CAO 6
2 ème modèle Excel avec utilisation des macros Si l'onglet Développeur n'est pas disponible Cliquez sur le Bouton Microsoft Office, puis sur Options Excel. Dans la catégorie Standard, sous Meilleures options pour travailler avec Excel, cochez la case Afficher l'onglet Développeur dans le ruban, puis cliquez sur OK Nguyen Vi CAO Slide No : 13 2 ème modèle Excel avec utilisation des macros Pour enregistrer une macro Menu Développeur Cliquer sur Enregistrer une macro Donner le nom Epargne à la macro Faire la séquence d opérations Cliquer sur arrêter l enregistrement Nguyen Vi CAO Slide No : 14 HEG - - Nguyen Vi CAO 7
2 ème modèle Excel avec utilisation des macros Pour affecter une macro à un bouton Menu Insertion, Option Forme Dessiner le bouton, un rectangle par exemple Donner nom Epargne à votre bouton Cliquer sur le bouton droite de la souris Sélectionner affecter une macro Sélectionner la macro Epargne Nguyen Vi CAO Slide No : 15 Editeur Visual Basic HEG - - Nguyen Vi CAO 8
Pratique Ouvrir la macro Epargne dans l éditeur VB Ouvrir le modèle Epargne1 Sous le menu Développer, cliquer sur Visual Basic Dans la fenêtre Explorateur de projet cliquer sur Module 1 Ouvrir la macro Epargne Dans la fenêtre Code, observer le programme généré lors de l enregistrement de la macro Nguyen Vi CAO Slide No : 17 Editeur Visual Basic VB editor est un environnement pour facilite l écriture des programmes VB Fenêtre Explorateur de projets Fenêtre Code Fenêtre Propriété Nguyen Vi CAO Slide No : 18 HEG - - Nguyen Vi CAO 9
Remarque sur la structure de la macro La macro commence par Sub et se termine par End Sub Sub nom [(ListeArguments)] [instructions] End Sub Cette structure de base est appelée une procédure Elle permet de créer un module qui regroupe des instructions permettant d effectuer une tâche particulière Une procédure peut être appelée à partir d autres procédures par invocation de son nom et éventuellement des paramètres => programmation modulaire Nguyen Vi CAO Slide No : 19 Remarque sur la structure de la macro Il est important de Commenter le programme Commenter = insérer les lignes d explications précédées par un apostrophe Les commentaires facilitent la compréhension et la maintenance du programme Indenter les instructions Indenter = aligner les instructions de même niveaux en utilisant la barre d espace ou la tabulation L indentation améliore la lisibilité du programme donc sa compréhension Nguyen Vi CAO Slide No : 20 HEG - - Nguyen Vi CAO 10
et le langage Orienté Objets Concepts de base VB et VB (Visual Basic) Est un langage Orienté Objet de Microsoft Il ne dépend pas d applications hôtes (Visual Basic for Application) a la même syntaxe que VB Dépend d une application hôte (Excel, Word, Access, etc.) Nguyen Vi CAO Slide No : 22 HEG - - Nguyen Vi CAO 11
Langage Orienté Objets Un objet Est quelque chose qui a une existence, des propriétés propres, des actions qui règlent son comportement Exemple une voiture, une feuille Excel Une collection Ensemble d objets de mêmes natures Une classe Exemple les voitures, les feuilles Excel Définition commune d un ensemble d objet Exemple caractéristiques communes des voitures, des feuilles Excel Nguyen Vi CAO Slide No : 23 Langage Orienté Objets Un objet a Des propriétés Exemple: la couleur de la voiture, le nom de la feuille Excel Des méthodes Qui sont des actions qui règlent le comportement de l objet Exemple: démarrer la voiture, copier une feuille Excel Nguyen Vi CAO Slide No : 24 HEG - - Nguyen Vi CAO 12
Langage Orienté Objets Quelques mots clés Instanciation Créer un objet particulier à partir d une classe Héritage Les objets d une même classe ont des mêmes propriétés Nguyen Vi CAO Slide No : 25 Exemples d objets Excel Objet Workbook (représente un classeur) Propriétés: Fullname, FileFormat Méthodes: Close, Save Objet Worksheet (représente une feuille de calcul) Propriétés: Visible, EnableCalculation Méthodes: Copy, Delete Objet RANGE (représente une cellule, une ligne, une colonne ou une sélection de cellules) Propriétés: Value, Formula Méthodes: Select, ClearContents Nguyen Vi CAO Slide No : 26 HEG - - Nguyen Vi CAO 13
Utiliser les propriétés et méthodes d un objet Syntaxe pour modifier la propriété d un objet Objet.propriété = nouvelle valeur Range(«A3»).Value = 4 affecte la valeur 4 à la cellule A3 Syntaxe pour interroger la la propriété d un objet Variable = Objet.Propriété ValeurA3 = Range(«A3»).Value affecte à la variable ValeurA3 la valeur de la cellule A3 Syntaxe pour appliquer une méthode à un objet Objet.méthode Range(«A3»).ClearContents efface le contenu de la cellule A3 Nguyen Vi CAO Slide No : 27 La sélection HEG - - Nguyen Vi CAO 14
La sélection L objet RANGE représente une cellule, une ligne, une colonne ou une sélection de cellules Exemples: Pour sélectionner la plage A3:A6 Range(«A3:A6»).Select Pour sélectionner une plage de cellules contigües contenant des valeur à partir de la cellule A3 Range("A3").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Nguyen Vi CAO Slide No : 29 Les variables HEG - - Nguyen Vi CAO 15
Types de variables permet de définir plusieurs types de variable Chaque variable correspond à un domaine spécifique Integer Long Single Double String Boolean Entier (intervalle restreint) Entier (intervalle étendu) Réel (intervalle restreint) Réel (intervalle étendu) Chaîne de caractères Logique Nguyen Vi CAO Slide No : 31 Déclaration de variables Syntaxe Dim NomVariable As Type Exemples Dim TxIntérêt AS Single Dim NbPeriode AS Integer La déclaration de variable est conseillée Mais elle n est pas obligatoire Une variable non déclarée peut être affectée à des valeurs de n importe quel type Nguyen Vi CAO Slide No : 32 HEG - - Nguyen Vi CAO 16
Les interactions Les interactions L instruction Msgbox(arguments) affiche une fenêtre avec un texte à l écran Ex: Msgbox(«Merci!») affiche une fenêtre avec le texte «Merci!» à l écran Nguyen Vi CAO Slide No : 34 HEG - - Nguyen Vi CAO 17
Les interactions L instruction Inputbox(arguments) affiche une fenêtre permettant aux utilisateurs de saisir une donnée Inputbox(«Entrez le taux intérêt») affiche une fenêtre avec le texte «Entrez le taux intérêt» et permet à l utilisateur de saisir une valeur TxInt = Inputbox(«Entrez le taux intérêt») affecte la valeur saisie par l utilisateur à la variable TxInt Nguyen Vi CAO Slide No : 35 Exercice: modèles Epargne2 Ouvrir le modèle Epargne1 Enregistrer sous le nom Epargne2 En utilisant l instruction InputBox, modifier la procédure Epargne pour permettre à l utilisateur de saisir Le capital initial Le taux d intérêt La conversion Renvoyer les valeurs saisies par l utilisateur dans les cellules de la feuille où doivent se trouver ces valeurs Nguyen Vi CAO Slide No : 36 HEG - - Nguyen Vi CAO 18
Les fonctions Les fonctions Permet de retourner une valeur calculée à partir des arguments Function Nom [(ListeArguments)] [As type] [instructions] [nom = expression] [instructions] End Function Nguyen Vi CAO Slide No : 38 HEG - - Nguyen Vi CAO 19
Exercice: modèle Epargne3 Ouvrir le modèle Epargne2 L enregistrer sous le nom Epargne3 Ecrire une fonction nommée Epargner permettant de calculer le capital final à partir du capital initial, le taux d'intérêt et le nombre de périodes CapitalFinal = CapitalInitial * (1+TauxIntérêt)^NbPériode Renvoyer le capital final obtenu avec cette fonction dans la feuille à l endroit où il doit se trouver (en remplaçant la formule) Nguyen Vi CAO Slide No : 39 Les instructions de base HEG - - Nguyen Vi CAO 20
Les conditions If condition Then [instructions] [Else [instructions]] End If Nguyen Vi CAO Slide No : 41 Exercice: modèle Epargne4 Ouvrir le modèle Epargne3 L enregistrer sous le nom Epargne4 Modifier la procédure Epargne comme suit Calculer la conversion en monnaie étrangère en utilisant l instruction IF Si Renvoyer le résultat obtenu dans la feuille à l endroit où il doit se trouver en remplaçant la formule Nguyen Vi CAO Slide No : 42 HEG - - Nguyen Vi CAO 21
Les boucles While condition [instructions] Wend Nguyen Vi CAO Slide No : 43 Les boucles For compteur = début To fin [Step incrément] [instructions] Next [compteur] Nguyen Vi CAO Slide No : 44 HEG - - Nguyen Vi CAO 22
Les boucles Do [{While Until} condition] [instructions] Loop La syntaxe suivante est également valable: Do [instructions] Loop [{While Until} condition] Nguyen Vi CAO Slide No : 45 Mettre une formule dans une cellule Instruction FORMULA permet d écrire une formule dans une cellule ou ensemble de cellules Ex. Range(«A3»).FORMULA = («=A1-A2») met la formule A1-A2 dans la cellule A3 Nguyen Vi CAO Slide No : 46 HEG - - Nguyen Vi CAO 23
Exercice: Modèle Epargne5 Ouvrir le modèle Epargne4 L enregistrer sous le nom Epargne5 Modifier la procédure Epargne pour Effacer les périodes et les capitaux constitué (les détails) Permettre aux utilisateurs de saisir un nombre de périodes Calculer le capital final et le capital de chaque période (détails) Ecrire une formule dans une cellule de la feuille pour calculer le gain (capital final capital initial) Nguyen Vi CAO Slide No : 47 Interface utilisateur HEG - - Nguyen Vi CAO 24
Userform Concevoir l interface Dessiner l interface Coder l interface Nguyen Vi CAO Slide No : 49 Conclusion HEG - - Nguyen Vi CAO 25
vs formules Modèle avec formules est plus direct et plus simple Mais une formule peut être effacée par erreur est plus sûr Le code permet d écrire les résultats et les formules dans les cellules Il est moins accessible aux utilisateurs permet de faire des modèles interactifs Ce qui est difficile à faire avec des formules permet de faire des boucles Ce qui est difficile à faire avec des formules, voire l enregistrement des macros Nguyen Vi CAO Slide No : 51 HEG - - Nguyen Vi CAO 26