Séance 4: Plan Test d’auto-évaluation Relâche ou pas? À faire

Slides:



Advertisements
Présentations similaires
III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES
Advertisements

Portée des variables VBA & Excel
Références à une cellule dans EXCEL
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
VBA Les tableaux correction du TD du mardi 11 mars 2008 correction du TD du mardi 11 mars 2008.
Visual Basic for Applications
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Excel.
Excel. Utilisation possible d un tableur Tenir ses comptes personnels : salaires, impôts, dépenses et recettes diverses... Tenir les comptes d'une (petite)
TP 8 : parcours de liste et cas pratique
TP 2 : Nos premières macros
Variables et compagnie
VBA / Excel TP 6 La boucle FOR.
L ’événement CHANGE est détecté par Vba dès qu ’un caractère est saisi ( ou tapé) dans l ’objet TextBox. Par contre l ’événement AFTERUPDATE laisse le.
Retour au menu principal. Généralités Lenvironnement Laffichage de la fenêtre Déplacement / sélection dans une feuille Classeurs La gestion des classeurs.
Les TABLEAUX Retour au menu principal.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Par Fabrice Pasquier Cours III
Microsoft Excel Avancé
Un neurone élémentaire
Le langage ASP Les tableaux (Arrays).
Plan À faire Retour sur les exercices Gestion d’erreur
Par Fabrice Pasquier Cours IV
Programmation en VBA Introduction au language Visual Basic for Applications dans le monde Excel.
Manipulation feuille classeur
CLUB DES UTILISATEURS SAS DE QUÉBEC
Quelques algorithmes sur calculatrices
Programmation en VBA Introduction au language Visual Basic for Applications dans le monde Excel.
INF130 Exemple d’exécution du TP2
Le tableur, outil de calcul et de traitement de listes de valeurs
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Points importants de la semaine Les tableaux. Rappel : les tableaux Quest-ce quun tableau ? Réponse : Un tableau est une série déléments de même type.
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.

Références à une cellule dans EXCEL
Université Ibn Zohr Faculté des Sciences Economiques et Sociales Notes de cours VBA E. Belahmidi 2007/2008.
Tableaux, chaînes VBA et Excel
Informatique de gestion – IO MER L3 – Pierre SOURNAC Informatique de Gestion part III – the macro rises L3 – IO MER
Cours No8 La programmation à l’aide d’objets. Contenu 1. Terminologie objet 2. Classe vs Objet 3. Création d’une classe 4. Déclaration d’une variable.
Programmation événementielle
Algorithmes de tri et de recherche
La fonction RECHERCHEV
LES fonctionS EQUIV et INDEX
Université Lyon 2 - TICE 3 séance 031 Traitement des données chiffrées dans un tableur TICE 3 – Séance 3 Ny Haingo Andrianarisoa
Introduction Ateliers VBA Cours n°1 – Création d’Interfaces Cours n°2 – Téléchargement de données Cours n°3 – Codage.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Macros Visual Basic sur Excel
Fonctions avancées et graphiques
Tableur 1.Concept : Un tableur permet de manipuler des données, de le présenter, de les trier et d'effectuer automatiquement des calculs sur des nombres.
 Formulaires HTML : traiter les entrées utilisateur
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Initiation au web dynamique Licence Professionnelle.
Informatique de Gestion part I – Macro begins
Informatique de Gestion part II – the dark macro
Résolution du Problème
Une proposition de résolution du pb1 AEP PACD VB Pb11.
Une aide pour débutant éclairé
QCM VBA.
Initiation aux bases de données et à la programmation événementielle
1 Systèmes d ’Information : 6b Michel de Rougemont Université Paris II L’Architecture Client/Server.
DreamWeaver Séance 2 HMIDA Ahmed A2008. Plan 1.Calques 2.CSS 3.Modèles 4.Formulaires 5.Comportements 6.Mise en ligne.
Algorithmes sur Open Office. 1. Ouvrir Visual Basic de Open Office.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

Séance 4: Plan Test d’auto-évaluation Relâche ou pas? À faire Retour sur les exercices Méthode de dichotomie Tableaux VBA vs Tableaux Excel Gestion d’erreurs Modèle objet Excel Obtenir des données d’une base de données

À faire (re)Lire formation VBA: Gestion d'erreur Collections et tableaux Dialogues et formulaires Objets et événements Excel Conseils de programmation Une macro Excel qui crée un tableau VBA contenant une matrice symétrique 500x500 de nombres aléatoires entre 1 et 100, puis en copie le contenu dans une plage Excel

À faire (suite)

Retour sur les exercices Un bon programme… Fait toujours ce qui est prévu. Ne fait jamais ce qui n'est pas prévu. Est facile à utiliser. Est facile (peu coûteux) à modifier. Boucle de recherche: plage et test de fin Pourquoi ne pas typer les paramètres de fonction

Exercice: Comparaison de plages Une fonction Excel qui compare 2 plages de cellules d’égales dimensions et retourne le nombre de cellules dont le contenu est identique (dans la même position)

Exercice: Création de matrice Un programme VBA Excel qui crée une plage Excel contenant une matrice symétrique de nombres aléatoires entre 1 et 100, puis en affiche l’aperçu avant impression.

Exercice: Décompte de hausses Une fonction Excel qui détermine le nombre de fois où une action a augmenté de plus de 10% dans une journée. Suggestion: tester votre programme à partir dune série de valeurs historiques obtenues de Yahoo Finance.

Exemple de boucle en finance Calcul du coût en capital en utilisant « two stage Gordon model » (méthode Gordon) P0 capital au temps 0 Div0 revenus au temps 0 ghigh taux de croissance élevé de Div0 m nombre d’années de taux ghigh gnormal taux de croissance par la suite rE taux de rendement (valeur cherchée) (Tiré de Simon Benniga Financial Modeling)

Calcul de rE Méthode de dichotomie Code proposé par l’auteur (p.52): Function TwoStageGordon(P0, Div0, Highgrowth, Highgrowthyrs, Normalgrowth) high = 4 low = 0 Do While (high - low) > 0.000000001 Estimate = (high + low) / 2 factor = (1 + Highgrowth) / (1 + Estimate) Term1 = Div0 * factor * (1 - factor ^ Highgrowthyrs) / (1 - factor) Term2 = Div0 * factor ^ Highgrowthyrs * (1 + Normalgrowth) / (Estimate - Normalgrowth) If (Term1 + Term2) > P0 Then low = (high + low) / 2 Else: high = (high + low) / 2 End If Loop TwoStageGordon = Estimate End Function

TwoStageGordon – sur CD Le code est (un peu) différent sur CD: Function TwoStageGordon(P0, Div0, Highgrowth, Highgrowthyrs, Normalgrowth) high = 1 low = 0 Do While (high - low) > 0.000000001 Estimate = (high + low) / 2 factor = (1 + Highgrowth) / (1 + Estimate) Term1 = Div0 * factor * (1 - factor ^ Highgrowthyrs) / (1 - factor) Term2 = Div0 * factor ^ Highgrowthyrs * (1 + Normalgrowth) / (Estimate - Normalgrowth) If (Term1 + Term2) > P0 Then low = (high + low) / 2 Else: high = (high + low) / 2 End If Loop TwoStageGordon = (high + low) / 2 End Function

Code documenté Function TwoStageGordonMB(P0, Div0, Highgrowth, Highgrowthyrs, Normalgrowth) 'Auteurs: Maja Sliwinski, Beni Czaczkes et Simon Benninga, tiré de Financial Modeling (2008) p.52 'Adaptée par Michel Berthiaume, sept. 2010 'Calcul du taux de rendement d'un capital P0 donnennt des rendements Div0 au temps 0, 'avec des taux de croissance Highgrowth (durant Highgrowthyrs années) et Normalgrowth par la suite 'Résolution en utilisant la Méthode de dichotomie 'Noter que l'utilisation du type Currency au lieu de Double réduit la précision à 4 décimales Dim cHigh As Currency 'Borne supérieure Dim cLow As Currency 'Borne inférieure Dim cEstimate As Currency 'Valeur testée Dim cFactor As Currency 'Sous-calcul répété dans l'équation. Dim cterm1 As Currency 'Partie 1 Dim cterm2 As Currency 'Partie 2 'Validations If Not IsNumeric(P0) Or _ Not IsNumeric(Div0) Or _ Not IsNumeric(Highgrowth) Or _ Not IsNumeric(Highgrowthyrs) Or _ Not IsNumeric(Normalgrowth) Then TwoStageGordonMB = "Paramètre non numérique" Exit Function End If cHigh = 4 'Valeurs initiales. cLow = 0 'On cherche un taux compris entre 0 et 4. Do While (cHigh - cLow) > 0.0001 'On arrète quand cHigh = cLow ou presque cEstimate = (cHigh + cLow) / 2 'Calcul de la fonction en utilisant cEstimate cFactor = (1 + Highgrowth) / (1 + cEstimate) cterm1 = Div0 * cFactor * (1 - cFactor ^ Highgrowthyrs) / (1 - cFactor) cterm2 = Div0 * cFactor ^ Highgrowthyrs * (1 + Normalgrowth) / (cEstimate - Normalgrowth) 'On remplace une des bornes par la valeur testée If (cterm1 + cterm2) > P0 Then cLow = cEstimate Else cHigh = cEstimate End If Loop 'Et on recommence.... TwoStageGordonMB = cEstimate End Function

Lectures… Questions?

Tableaux Range ("A1:A3") Dim dVecteur(1 to 3) Range ("A1:J10") DIM tblValeurs as double(1 to 10,1 to 10) DIM tblValeurs() ReDIM tblValeurs(1 to 10,1 to 10) Utilisation de FOR ... NEXT Utilisation de FOR … EACH

Limites de tableaux DIM UBOUND LBOUND REDIM UBOUND LBOUND Utiles lorsqu’on passe un tableau en paramètre OPTION BASE (éviter ou mettre à 1)

De Excel vers VBA: Méthode classique (2 boucles) ou Dim vTableau() As Variant vTableau = Range("Plage") Si tableau dynamique et variant Intéressant, mais dangereux: type variant ReDim implicite

De VBA vers Excel Range(Cells(1, 1), Cells(UBound(vTableau, _ 1), UBound(vTableau, 2))) = vTableau si LBound() = 1 Seules les cellules de Range sont modifiées Attention aux dimensions

Tableaux Excel vs Tableaux VBA En lecture: 100 fois plus lent dans Excel que dans VBA En écriture: 1000 fois plus lent Voir S04 Performance

Objets Excel Evaluate MsgBox [A2] [MsgBox [VLOOKUP(DATE(2008,11,12),A4:R2620,2)] SpecialCells xlCellTypeBlanks. Cellules vides xlCellTypeConstants. Cellules contenant des constantes xlCellTypeFormulas. Cellules contenant des formules xlCellTypeLastCell. Dernière cellule dans la plage utilisée xlCellTypeVisible.Toutes les cellules visibles CurrentRegion Cette propriété renvoie un objet Range qui représente la zone en cours. Celle-ci est une plage limitée par toute combinaison de lignes et de colonnes vides. UsedRange Cette propriété renvoie un objet Range qui représente la plage utilisée dans la feuille de calcul spécifiée.

Gestion d’erreurs On error goto Stop

ByrRef, ByVal Option Explicit Sub test() ‘Par Michel Berthiaume, mai 2007 ‘ByRef ou ByVal? Dim cMontant As Currency cMontant = 9.99 MsgBox fnTaxe(cMontant) MsgBox cMontant End Sub Function fnTaxe(cValeur) If Not IsNumeric(cValeur) Then fnTaxe = "Erreur, valeur non numérique" End If cValeur = cValeur * 0.07 fnTaxe = cValeur End Function