80 likes | 159 Views
Learn how to automatically download historical financial data from Yahoo Finance, calculate average returns and display results in a UserForm. Detailed VBA coding explanation provided, enabling you to optimize your workflow efficiently. Implement looping mechanism, block screen during processing, and manage downloads through UserForm interface. Submit your completed Excel file via email by the end of the session. Enhance your financial analysis skills!
E N D
Introduction • Ateliers VBA • Cours n°1 – 22.02.2013 - Création d’Interfaces • Cours n°2 – 01.03.2013 - Téléchargement de données • Cours n°3 – 12.04.2013 - Codage de formule • Cours n°4 – xx.xx.2013 – Synchronisation des dates
Atelier n° 2 • Atelier n° 2 – Téléchargement de données
Comment récolter de l’information via Internet? • Manuellement • Aller chercher directement sur internet le fichier qui nous intéresse et le télécharger. • 2) Par Package • Base de données distribuées en OpenSource contenant l’ensemble des données historiques par type d’actifs financiers, par type de marché (SMI, SPI, FTSE, etc.) ou par activités (HedgeFund, MutualFund, Indice, etc.) • 3) Via VBA Ce que nous allons voir aujourd’hui
Web Query • Le but étant d’automatiser • ce processus réalisé «à • la main» à l’aide de VBA
Comment procéder ? • Inclure votre WebQuery directement dans votre code VBA: • Une "ligne de code" permettant d'aller chercher le liens du fichier sur internet • Un «bout de code» qui permet d'extraire les données recueillies sur internet et de les afficher comme l'utilisateur le souhaite dans son fichier Excel
Code Général • Sub SMI() • ' Cette "ligne de code" permet d'aller chercher le liens du fichier sur internet et de l'extraire dans notre fichier excel • sURL1 = "http://ichart.finance.yahoo.com/table.csv?s=%5ESSMI&d=9&e=1&f=2012&g=d&a=10&b=9&c=1990&ignore=.csv" • ' Ce "bout de code" permet d'extraire les données recueillies sur internet • Workbooks.Open sURL1 ' Ouverture de la source URL • Set RngSource = Cells(1).CurrentRegion ' Dans fichier Excel, on prend par défaut la première cellule • X = ' X = nombre de ligne que je veux qu'il m'affiche • Y = ' Y = nombre de colonne que je veux qu'il m'affiche • ' Ce "bout de code" permet de les afficher comme l'utilisateur le souhaite • With ThisWorkbook.Sheets() ' With = met place un contexte - pour la feuille n°1 du WB • Set RngDest = Range(.Cells( , ), .Cells( , )) ' Séléctionne de la celulle ligne 2 colonne 1 et tte celles jusqu'à ‘ la fin X • End With ' (.) evite de réécrire this WB • RngDest.Value = RngSource.Value ' la valeur de mon range prend la valeur de ma source • ‘ Permet de sauvegarder les données • ActiveWorkbook.Close SaveChanges:=True ' Je ferme la page WB // En sauvant les données
TP VBA II - Travail demandé • Téléchargement automatisé de données historique • pour 3 titres • depuis Yahoo Finance. • Calculer le rendement moyen pour chaque titre • Les résultats seront affichés dans une UserForm
TP VBA II - Travail demandé • -) Expliquer de façon détaillé le code que vous utilisez • -) possibilité d’effacer et recommencer le travail indéfiniment • -) bloquer l’écran lorsque l’application travaille • -) Mise en place d’une boucle permettant d’alléger le code • ( ne pas copier coller le code pour chaque titre – mais utiliser cette boucle) • -) Gérer le téléchargement via une Userform • ( ne pas voir le fichier excel) • M’envoyer par mail votre fichier xls à la fin du cours • Vous avez jusqu’à midi - Merci et bon travail !!!