Rechercher des cours avec Excel (Securibourse)

par PBourdon @, Levallois, vendredi 10 novembre 2017, 16:22 (il y a 2331 jours)

Bonjour à tous,

Je fais mon suivi de portefeuille avec un tableau Excel. Pour rechercher les cours des titres, j'utilisais depuis plusieurs années une requête sur finance.yahoo(http://finance.yahoo.com/d/quotes.csv?s= ...). Le bouton "actualiser les données" déclenchait la mise à jour.

Depuis quelques jours, cette requête ne marche plus. Comme j'avais mis un peu de temps à trouver ça, si quelqu'un connaît une solution simple et rapide, il aura toute ma reconnaissance !

:-)
Pierre

Rechercher des cours avec Excel

par jpa @, vendredi 10 novembre 2017, 17:16 (il y a 2331 jours) @ PBourdon

Je n'ai jamais eu le courage de procéder de la sorte. En partie par manque de temps et car ce serait sans doute trop long à tenir à jour pour mon portefeuille (trop) dispersé.
Cependant, ce qui me freine le plus, c'est d'être à la merci de la moindre relivraison d'un site commercial!

Avec le monde de l'open data, est-ce qu'une plate-forme de type Quandl ou un équivalent ne ferait pas l'affaire pour ce genre de besoin?

D'après ce que je comprends, les données Euronext y seraient en accès gratuit.
Je n'ai pas creusé de près. Mais peut-être est-une solution plus stable désormais que de revamper Yahoo ou Boursorama...

https://www.quandl.com/data/EURONEXT-Euronext-Stock-Exchange

Quelques exemples disponibles

par jpa @, vendredi 10 novembre 2017, 18:11 (il y a 2331 jours) @ jpa

Pour un usage avec Excel
https://www.quandl.com/data/EURONEXT-Euronext-Stock-Exchange/usage/quickstart/excel
After installing the Quandl Excel Add-in, you can try any of these formulae by pasting them into a cell.
Filter by a single date
This call retrieves Nov 9, 2017 data for EURONEXT/ALMET.
QSERIES("EURONEXT/ALMET", "2017-11-09")
Filter by a date range
This call retrieves data from Nov 7, 2017 to Nov 9, 2017 for EURONEXT/ALMET.
QSERIES("EURONEXT/ALMET", {"2017-11-07", "2017-11-09"})
Retrieve unfiltered time-series
This call retrieves all columns for EURONEXT/ALMET with no filters applied.
QSERIES("EURONEXT/ALMET")
Retieve multiple unfiltered time-series
This call retrieves all columns for EURONEXT/ALMET, EURONEXT/STAL, EURONEXT/ANT with no filters applied.
QSERIES({"EURONEXT/ALMET", "EURONEXT/STAL", "EURONEXT/ANT"})

Avatar

Rechercher des cours avec Excel

par jmp ⌂ @, Boulogne/Mer, vendredi 10 novembre 2017, 17:42 (il y a 2331 jours) @ PBourdon

Bonjour Pierre,

La communauté des IH a aussi été confrontée au problème:
https://www.devenir-rentier.fr/t176-4

et Dieu (comme dirait Bimbo) s'est rabattu sur le WSJ:

"Il n’y a plus que le WSJ, c’est celle que j’utilise pour XlsValorisation."

Reste à demander à Dieu s'il veut bien communiquer le mode d'emploi. Vu que XlsValorisation est payant, pas sûr qu'il en fasse l'aumône.

--
jean-marie

Avatar

Rechercher des cours avec Excel

par fabrice @, samedi 11 novembre 2017, 12:01 (il y a 2330 jours) @ PBourdon

Bonjour Pierre,

En tant que testeur bêta :respect: je te recommande d'appuyer 2 fois plus fort sur le bouton "actualiser les données" :-D :-D :-D

Ne me remercie pas, c'est de l'entraide:fou:

Bon WE à tous

Rechercher des cours avec Excel

par PBourdon @, Levallois, samedi 11 novembre 2017, 23:11 (il y a 2329 jours) @ PBourdon

Merci de vos retours. Je ne connaissais pas Quandl; pour le moment, je n'ai pas réussi à utiliser qseries :-( (peut-être incompatible avec ma version d'Office). Je n'ai pas trop le temps ni la motivation pour m'y plonger sérieusement. Je vais continuer mes recherches ... si vous avez d'autres suggestions, je suis preneur !

:-)
Pierre

Avatar

Rechercher des cours avec Excel

par jmp ⌂ @, Boulogne/Mer, dimanche 12 novembre 2017, 15:08 (il y a 2329 jours) @ PBourdon

Si je n'étais pas aussi fainéant, j'aurais probablement fait un suivi de portefeuille en utilisant le programme de relevé des cours sur bourso pour le JTB. Mais depuis plus de trente ans, je continue de relever les cours chaque week-end sur une feuille de papier à partir de la valorisation indiquée par mon courtier. Va comprendre, Charles!
Si mon programme de relevé des cours sur bourso t'intéresse, il est libre! C'est du Perl donc ça doit pouvoir s'exécuter sur un peu n'importe quoi (enfin, non, peut-être pas sur iOS).

--
jean-marie

Rechercher des cours avec Excel

par PBourdon @, Levallois, lundi 13 novembre 2017, 20:35 (il y a 2328 jours) @ jmp

Bonsoir Jean-Marie,

Merci. Si je ne trouve pas de solution rapide et si je trouve la motivation pour me plonger dans le code, je te fais signe.

:-)

Pierre

Avatar

Rechercher des cours avec Excel

par jmp ⌂ @, Boulogne/Mer, dimanche 19 novembre 2017, 22:03 (il y a 2321 jours) @ PBourdon

Si tu veux du Python au lieu du Perl: un exemple de recherche de cours sur le site Bloomberg avec plein d'explications, à mon avis facile à bricoler pour chercher n'importe quelle valeur au lieu de l'indice SPX. C'est probablement ce que j'utiliserais pour le JTB si j'avais à refaire le boulot.
https://medium.freecodecamp.org/how-to-scrape-websites-with-python-and-beautifulsoup-59...

--
jean-marie

Avatar

Rechercher des cours sans Excel

par jmp ⌂ @, Boulogne/Mer, mardi 05 décembre 2017, 19:22 (il y a 2306 jours) @ PBourdon

[...]... si vous avez d'autres suggestions, je suis preneur !

Autre suggestion: utiliser le gestionnaire de portefeuille GnuCash (qui gère en fait toute ta compta en partie double si tu en as le besoin ;-) et qui est sous licence GPL donc gratuit et avec le programme source). C'est du C mais les utilitaires sont en langages variés (Java, Python et Perl).

Je viens d'essayer, ça m'a pris une journée pour compiler et installer les dépendances, une autre journée pour comprendre comment entrer le portefeuille et ses valeurs. Enfin je lance la mise à jour et... rien ne marche: le programme de recherche des cours sur Bourso n'est pas à jour. Celui avec Yahoo ne marche pas non plus. En fait, je n'en ai pas trouvé un seul qui marche!

Comme c'est du Perl, j'ai plongé dans le code de la recherche Bourso aujourd'hui et hop, ça roule (mon portif actuel par odre alphabétique):

[image]


Il me reste à mettre à jour le code officiel avec mes modifs (c'est le module "Finance::Quote" sur CPAN) et ça sera dispo pour tous ceux qui veulent.

--
jean-marie

Avatar

Si tu tiens vraiment à Excel

par jmp ⌂ @, Boulogne/Mer, mercredi 06 décembre 2017, 08:34 (il y a 2305 jours) @ jmp

C'est possible depuis GnuCash d'exporter le rapport "Portefeuille d'actions" en html et d'ouvrir ce rapport html dans Excel. Je viens d'essayer avec LibreOffice et ça marche: tu obtiens le beau tableau de mon précédent message bien aligné avec les titres et le total.

Il doit aussi être possible de se passer de GnuCash et d'utiliser directement les programmes Perl de Finance::Quote en les appelant depuis Excel. Les données récupérables ne se limitent pas au dernier cours. Voici par exemple les résultats fournis pour IBM puis BNP Paribas:

~$ gnc-fq-dump -v bourso IBM
Finance::Quote fields Gnucash uses:
symbol: US4592001014 <=== required
date: 12/05/2017 <=== required
currency: USD <=== required
last: 155.72 <=\
nav: <=== one of these
price: <=/
timezone: <=== optional

All fields returned by Finance::Quote for stock IBM

stock field value
----- ----- -----
IBM cap: 145121740000
IBM currency: USD
IBM date: 12/05/2017
IBM exchange: NYSE
IBM high: 156.74
IBM isodate: 2017-12-05
IBM last: 155.72
IBM low: 154.68
IBM method: bourso
IBM name: IBM
IBM open: 156.45
IBM p_change: -0.47%
IBM previous: 156.46
IBM success: 1
IBM symbol: US4592001014
IBM volume: 0

~$
~$ gnc-fq-dump -v bourso 1rPBNP
Finance::Quote fields Gnucash uses:
symbol: FR0000131104 <=== required
date: 12/05/2017 <=== required
currency: EUR <=== required
last: 63.51 <=\
nav: <=== one of these
price: <=/
timezone: <=== optional

All fields returned by Finance::Quote for stock 1rPBNP

stock field value
----- ----- -----
1rPBNP cap: 79287980000
1rPBNP currency: EUR
1rPBNP date: 12/05/2017
1rPBNP exchange: Euronext Paris
1rPBNP high: 64.54
1rPBNP isodate: 2017-12-05
1rPBNP last: 63.51
1rPBNP low: 63.16
1rPBNP method: bourso
1rPBNP name: BNP PARIBAS P-A
1rPBNP open: 63.51
1rPBNP p_change: -0.86%
1rPBNP previous: 64.06
1rPBNP success: 1
1rPBNP symbol: FR0000131104
1rPBNP volume: 3370440

~$

--
jean-marie

Avatar

Rechercher des cours avec Excel

par isee @, lundi 18 décembre 2017, 13:04 (il y a 2293 jours) @ PBourdon

Bonjour

Ci-joint une solution VBA que j'ai enrichi "à ma sauce"... en espérant que ça puisse t'être utile.


Source des données pour la mise à jour= Boursorama

code à insérer dans un module VBA

Dim r As Long
Dim c As Long
Dim lig As Long
Dim i As Integer

Option Explicit

Sub Refresh_Boursorama()

'' !!!
''Outils > Références > Activer
''Microsoft HTML Object Library
''Microsoft XML, v6.0

Dim mXML As MSXML2.XMLHTTP60
Set mXML = New MSXML2.XMLHTTP60
Dim oDoc As MSHTML.HTMLDocument
Set oDoc = New HTMLDocument
Dim Element As IHTMLElement
Dim Elements As IHTMLElementCollection

'affectation des variables
i = 2
lig = ActiveSheet.Range("a65536").End(xlUp).Row

'nettoyage de la zone avant mise à jour
Range("b2:g" & lig).ClearContents

With mXML
For r = i To lig
.Open "GET", "http://www.boursorama.com/cours.phtml?symbole=" & Cells(r, 1).Value, False
.setRequestHeader "DNT", "1"
.send
If .Status = 200 Then
oDoc.body.innerHTML = .responseText

With oDoc.getElementsByTagName("TABLE")(0).Rows
Cells(r, "b").Value = ExtraitNombre(.Item(0).Cells(1).innerText) 'Cours
Cells(r, "c").Value = VBA.Replace(ExtraitNombre(.Item(3).Cells(1).innerText), " ", "") 'volume
Cells(r, "d").Value = .Item(1).Cells(1).innerText 'variation
Cells(r, "e").Value = .Item(2).Cells(1).innerText 'Dernier échange
Cells(r, "f").Value = .Item(8).Cells(1).innerText 'capital échangé
Cells(r, "g").Value = VBA.Replace(.Item(9).Cells(1).innerText, " MEUR", "") 'valo.
End With

End If
Next


End With

Set oDoc = Nothing
Set mXML = Nothing

MsgBox "Mise à jour terminée", vbOKOnly + vbInformation, "Message..."

End Sub

Function ExtraitNombre(chaine)
Dim Reg As Object
Set Reg = CreateObject("VBScript.RegExp")
With Reg
.Global = True: .Pattern = "(.[a-z].).": .IgnoreCase = True
ExtraitNombre = Reg.Replace(chaine, "")
End With
End Function

la feuille Excel en question > en image >>

[image]

Rechercher des cours avec Excel

par LAUNAY @, samedi 20 janvier 2018, 09:59 (il y a 2260 jours) @ isee

Bonjour
le hasard de mes recherches m a amené sur le site securibourse et sur votre macro.
je l'ai installée tel quel et elle plante sur ces deux lignes :
Cells(R, "f").Value = .Item(8).Cells(1).innerText 'capital échangé
Cells(R, "g").Value = VBA.Replace(.Item(9).Cells(1).innerText, " MEUR", "") 'valo.
et les cours restitués par la macro ne correspondent pas au cours de boursorama.
pom
fii 34,53 19/01/1821:59:57 28.25 EUR 1,59%
mgic 8,7 19/01/1822:00:00 7.1175 EUR 0,00%
sdg
swp 126,49 19/01/1821:44:10 103.48 EUR 0,18%

si vous pouviez me dépanner car je n'ai pas de compétences suffisantes en matière de récupération de cours de bourse sur un site web.Nota, pour récupérer une valeur, j utilise le ticker affecté au titre.
Merci par avance
Cordialement
F LAUNAY

Avatar

Rechercher des cours avec Excel

par jmp ⌂ @, Boulogne/Mer, samedi 20 janvier 2018, 10:46 (il y a 2260 jours) @ LAUNAY

si vous pouviez me dépanner car je n'ai pas de compétences suffisantes en matière de récupération de cours de bourse sur un site web.Nota, pour récupérer une valeur, j utilise le ticker affecté au titre.

Bonjour,

Je n'ai jamais essayé cette macro vu que je n'ai pas Excel, mais il faut utiliser le symbole boursorama et pas le ticker. Par exemple la société LISI a pour mnemo (ticker?) le code FII et pour symbole boursorama le code 1rPFII. Si vous mettez FII au lieu de 1rPFII vous obtenez sur boursorama les cotations de FED INVESTORS-B http://www.boursorama.com/cours.phtml?symbole=FII au lieu de celles de LISI http://www.boursorama.com/cours.phtml?symbole=1rPFII

C'est là votre erreur.

--
jean-marie

Rechercher des cours avec Excel

par LAUNAY @, samedi 20 janvier 2018, 11:03 (il y a 2260 jours) @ jmp

Bonjour
Merci pour votre réponse aussi rapide, la macro fonctionne parfaitement après avoir modifié cette ligne de code :
.Open "GET", "http://www.boursorama.com/cours.phtml?symbole=" & Cells(R, 1).Value, False
en
.Open "GET", "http://www.boursorama.com/cours.phtml?symbole=" & "1rp" & Cells(R, 1).Value, False

j'ai ensuite adapté le reste du code à mes besoins.
Message aux utilisateurs de ce forum :
si vous souhaitez obtenir un fichier fonctionnel avec cette macro, contactez-moi en écrivant flymenet@yahoo.fr, je vous renvoie le fichier.
Cordialement

Avatar

Rechercher des cours avec Excel

par jmp ⌂ @, Boulogne/Mer, samedi 20 janvier 2018, 11:12 (il y a 2260 jours) @ LAUNAY

C'est une simplification un peu rapide: toutes les valeurs cotées sur Paris n'ont pas un symbole qui commence par 1rP. Par exemple beaucoup de petites valeurs ont un symbole boursorama qui commence par 1rEP (Nextedia par exemple). Et cette méthode vous empêche d'avoir les cotations sur les autres places que Paris.
Je pense que la meilleure solution est d'utiliser le symbole boursorama au lieu du ticker.

--
jean-marie

Rechercher des cours avec Excel

par LAUNAY, dimanche 21 janvier 2018, 09:33 (il y a 2259 jours) @ jmp

Bonjour
Les sites que je consulte –Boursier, zonebourse, abc-bourse, investir- utilisent le ticker ou le code isin pour les recherches de valeur.
Le site abc-bourse met chaque jour à disposition un fichier de valeurs au format excel avec le choix ticker ou code Isin. Je télécharge ce fichier au quotidien à 18 h15, il me donne la côte de 660 valeurs. C’est à ma connaissance le site le plus efficace pour remplacer le défunt yahoo finances qui n’autorise plus le téléchargement.
Enfin, le préfixe 1rp inclus dans le code de la macro peut être mis en variable optionnel au choix de l’utilisateur.

Rechercher des cours avec Excel

par PBourdon @, Levallois, dimanche 21 janvier 2018, 10:55 (il y a 2259 jours) @ LAUNAY

Bonjour à tous,

Merci beaucoup. A partir du fichier proposé par Launay, j'ai fait quelques modifications pour partir du symbole Boursorama et j'ai modifié mon fichier Excel. Tout marche nickel de nouveau.

Cependant, j'ai voulu enrichir mon tableau et extraire quelques données supplémentaires (% du capital échangé, par exemple, comme proposé par isee), et là, j'ai un souci : pour Hiolle (1rpHIO), le code :

Cells(r, "f").Value = .Item(8).Cells(1).innerText 'capital échangé

ne renvoie pas le capital échangé mais le cours de réservation à la baisse. En consultant la page Boursorama pour cette valeur, on voit bien qu'elle diffère pour ce titre (pas d'affichage du % de capital échangé, ni de la valorisation).

Pour le moment, je vais me contenter de ce que j'avais précédemment, c'est déjà super. Merci encore pour cette aide collective !

:-)

Pierre

Rechercher des cours avec Excel

par seco, mercredi 31 janvier 2018, 21:16 (il y a 2249 jours) @ PBourdon

Oubliez Excel, ça ne va pas du tout vous aider.
Vous devez utiliser Python pour le scrap web.
Consultez cet article: https://likegeeks.com/python-web-scraping/
Il comprend de nombreux exemples pour extraire les valeurs des pages Web.

Cordialement,

Fil RSS du sujet
powered by my little forum