Liste action yahoo finance - VBA

Chers adeptes de VBA,

Je me permets de vous contacter pour un nouveau challenge. Je tiens à vous remercier d'avance même si cela vous est impossible de m'aider.

Pour mon mémoire (cette question n'est qu'une petite partie du mémoire), je dois télécharger les prix historiques de l'indice CAC40 ainsi que de ces composants. Je n'ai aucun problème à télécharger les données de l'indice lui même. Mais mon problème, c'est développer une boucle pour ensuite télécharger les données des composants du CAC40 et ne garder que la colonne "close" et calculer le rendement journalier.

Vous touverez ci-joint le début de mon travail et le link pour les données des composants et le suivant :

http://fr.finance.yahoo.com/q/cp?s=%5EFCHI

Merci à tous pour votre collaboration!!

Bonne soirée

624cac40.xlsm (20.95 Ko)

Bonjour,

On ne peut pas tout faire par macro car les liens de téléchargement n'obéissent à aucune règle précise.

j'ai donc chargé la liste des composants du CAC40 en feuille 2 (ça je l'ai fait à partir du ruban : Données> A Partir du Web)

et la liste des liens je l'ai récupéré manuellement.

YAPUKA appuyer sur le bouton pour lister les données...

Je pense que ça se passe d'autres explications ?

A+

774cac40-g.xlsm (26.83 Ko)

No mais t'es juste un chef Galopin!! Mil merci !!

C'est un petit pas pour toi mais un grand pas pour moi et mon mémoire

Dernière chose, peut-on reegrouper toutes les données sur une seule feuille ?

Avoir une colonne date, puis la première action avec son rendement et à côté la deuxième action et son rendement etc...

Encore merci pour ton implication et ta collaboration.

Meilleures salutations

Bonjour,

Voir en pièce jointe.

A+

979cac40.xlsm (47.79 Ko)

Galopin!!!! Ton code est juste génial!!

Mil merci et bonne journée!

Salut Galopin,

J'espère que tu vas bien depuis l'autre fois.

Je me permets de te contacter car j'ai de nouveau besoin de tes services mais malheureusement je ne peux pas te joindre mon fichier car trop lourd. Cependant je t'ai copier mon essai de code.

Je souhaite calculer la moyenne de chaque action qui se trouve sur la feuille CAC40 pour coller cette moyenne sur la feuille qui s'appelle "Indicateurs".

Pour calculer cette moyenne je dois prendre les données chaque deux colonne depuis la feuille CAC40 puis coller cette moyenne sur la feuille Indicateurs.

Enfaite je dois prendre la moyenne de la colonne D (sur la feuille CAC40) pour la coller dans la cellule B2 de la feuille indicateur.

Puis la moyenne de la colonne F pour la coller dans la cellule B3. La moyenne de la colonne H pour la cellule B4, etc..

C'est pas facile d'explique mais j'espère que tu m'as compris.

D'avance merci et bonne soirée.

Sub Moyenne()

Dim moy As Double

Dim i As Integer

Dim k As Integer

' calculer moyenne

For i = 2 To 41

For k = 4 To 82

moy = WorksheetFunction.Average(Sheets("CAC40").Columns(k))

Sheets("Indicateurs").Cells(i, 2).Formula = moy

Next k

Next i

End Sub

Bonjour,

Quelque chose comme ça ?

Sub Moyenne()
Dim i%, k%, moy As Double

For i = 2 To 41
   k = 2 * i
    moy = WorksheetFunction.Average(Sheets("CAC40").Columns(k))
Sheets("Indicateurs").Cells(i, 2) = moy
Next i

End Sub

A+

quelque choe comme ça?? Dis tu?

MAIS C'EST TOUT A FAIT çA !!! Je ne sais pas comment te remercier!! Tu m'es d'une très grande aide!!!

Très bonne journée!!!!

Salut Galopin,

J'espère que tu vas bien après tout ce temps.

Sache que ton aide m'a bcp aidé dans l'avancement de mon projet (même si il me reste encore bcp à faire) et t'en remercie.

Je me permets de te recontacter avec des nouvelles questions. Malgré l'avancement, je dois revenir aux bases!

Dans ma première requête tu m'avais aidé à télécharger les données historiques de plrs actions grâce à yahoo finance.

Comme aujourd'hui je gère un peu mieux VBA (mais pas bcp plus et pas autant que toi ), j'ai réussit à réduire un peu le code.

Cependant, certaines étapes du code me sont totalement inconnues et comme je dois présenter ce travail devant un jury, je dois connaitre exactement chaque ligne du code.

Je te joins le code sur une feuille "word" avec mes questions. Et n'hésite pas à simplifier le code si ce que j'ai fais est inefficient.

Mil merci d'avance pour ton aide.

a bientot et bonne soirée

294sub-cacv10.docx (14.90 Ko)

Bonjour,

Euh... pour le coup tu me mets un peu mal à l'aise (parce que je pensais avoir déjà suffisamment commenté le code)

La tu me demandes un peu pourquoi on appelle un chat un chat et pourquoi on programme comme ça...

Me demander pourquoi j'ai écrit ça :

'Nettoyage
i = Cells(65535, 1).End(xlUp)(2).Row
Rows(i & ":20000").Delete
Sheets("Cible").Columns("A:C").Delete

Me laisse pantois... C'est quoi exactement la question ? Pourquoi je fais le nettoyage ?

Ben, si tu veux pas le faire : tu supprimes ! Et tu verras bien pourquoi j'ai fait les ménage...

Ceci dit il se peut que j'ai fait le ménage pour rien, par habitude, par ce que je craignais que des données anciennes ou parasites ne viennent s'ajouter là ou il ne fallait pas...

Mais j'ai plutôt tendance à penser que si je l'ai rajouté c'est parce que j'ai constaté que sans ces lignes l'import ramenait des résidus indésirables.

Pour le reste des questions, elles ramène toutes à l'utilisation des Array. La variable déclarée tablo est un Array.

Cette question est vaste et complexe.

Je tacherai de t'envoyer une réponse plus complète sur ce sujet par mail. (car le forum n'est pas spécialement adapté à de long développements sur des questions complexes et multiples.

Bon dimanche.

A+

Bonjour,

Lien vers le fichier corrigé annoncé dans mon mail.

A+

Rechercher des sujets similaires à "liste action yahoo finance vba"