Automatiser la recherche d'information sur boursorama

Y compris Power BI, Power Query et toute autre question en lien avec Excel
h
henri27
Jeune membre
Jeune membre
Messages : 15
Appréciation reçue : 1
Inscrit le : 14 janvier 2020
Version d'Excel : 2013
Version de Sheets : Fr

Message par henri27 » 2 février 2020, 21:09

Bonjour
Je travaille sur comment automatiser la recherche d'informations sur le site boursorama mais ma Macro ne s'execute pas totalement.
Quelqu'un pourrait-il jeter un coup d'oeil svp ?
merci
Copie de Index Tracker 2 (1).xlsm
(25.44 Kio) Téléchargé 11 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 3 février 2020, 03:47

Bonjour,

Le code fonctionne très bien ... la colonne B n'étant pas renseignée, le calcul s'arrête à la dernière valeur !!
k = WS.Cells(Rows.Count, [REF].Column).End(xlUp).Row
C'est un de mes codes "anciens" qu'il conviendrait peut-être de rendre plus "clair"
Index Tracker sans le timer.xlsm
(23.37 Kio) Téléchargé 6 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
h
henri27
Jeune membre
Jeune membre
Messages : 15
Appréciation reçue : 1
Inscrit le : 14 janvier 2020
Version d'Excel : 2013
Version de Sheets : Fr

Message par henri27 » 3 février 2020, 22:33

Merci pour ton aide j'ai reussi a charger certains cours en renseignant les differents liens
Toutefois ca ne renseigne pas tous les cours ourtant tous les liens sont renseigné. Comment faire pour que tous les cours soient chargés ?
Et aussi stp tu pourrais laisser quelques commentaires vite fait dans ton code.
Il est simple mais je comprends a peine les fonctions utilisés et a quoi elles servent.

Merci d'avance pour ton aide.

Voila le fichier ci-joint
Index_Tracker.xlsm
(22.77 Kio) Téléchargé 6 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 4 février 2020, 00:53

henri27 a écrit :
3 février 2020, 22:33
Toutefois ca ne renseigne pas tous les cours ourtant tous les liens sont renseigné. Comment faire pour que tous les cours soient chargés ?
Comme dit plus haut, le programme s'arrête à la fin de la colonne B ... donc ligne 21 puisqu'il n'y a plus rien en dessous !
Pour éviter cela, j'ai changé le programme.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 4 février 2020, 00:58

Explications sur le code un peu simplifié :
Sub MajCotations()
Dim i%, k%, URL$, COT

' k est la dernière ligne renseignée de la colonne 3
k = Cells(Rows.Count, 3).End(xlUp).Row
' on efface les données colonne 4  la ligne 2 à k
Range(Cells(2, 4), Cells(k, 4)).Clear

On Error Resume Next
For i = 2 To k
    ' DoEvents permet de "passer la main" au système pour qu'il exécute ses tâches
    DoEvents
    On Error Resume Next ' si pas de réponse (ou erreur) on poursuit le code quand même pour le prochain cours
    Set Hobj = CreateObject("MSXML2.XMLHTTP") ' création de l'objet interrogation internet
    With Hobj
        .Open "GET", Cells(i, 3).Value, False
        .Send
        ' Le code de statut de réponse HTTP 200 OK indique la réussite d'une requête
        If .Status = 200 Then
            ' double split = découpage en tableau indices 0, 1, 2 etc.
            ' premier split selon "data-ist-last>" ... on prend le second terme du tableau donc indice 1
            ' second split selon "</span>" ... on prend le premier terme du tableau donc indice 0
            Cells(i, 4).Value = Val(Split(Split(.responsetext, "data-ist-last>")(1), "</span>")(0))
       End If
    End With
    
Next

End Sub
Index_Tracker.xlsm
(22.36 Kio) Téléchargé 15 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
h
henri27
Jeune membre
Jeune membre
Messages : 15
Appréciation reçue : 1
Inscrit le : 14 janvier 2020
Version d'Excel : 2013
Version de Sheets : Fr

Message par henri27 » 5 février 2020, 00:33

Merci c'est parfait tout fonctionne a merveille

Merci
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 5 février 2020, 01:36

:btres:

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
h
henri27
Jeune membre
Jeune membre
Messages : 15
Appréciation reçue : 1
Inscrit le : 14 janvier 2020
Version d'Excel : 2013
Version de Sheets : Fr

Message par henri27 » 23 février 2020, 23:22

Bonjour
je reviens sur le code en effet il m'a bcp aidé.
Toute fois j'aimerai savoir s'il est possible d'integrer une caractéristique qui me permet de recuperer les cours a une date donné et bien sur de les conserver dans une feuille .
Le code actuel ne charge que les cours en temps reel

Merci d'avance.je parle du dernier fichier envoyé
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 24 février 2020, 02:29

C'est un peu compliqué de tout faire dans un même fichier qui va être tellement complexe qu'il ne sera plus maintenable.
Le site dispose d'un historique, je te propose de charger le tableau, reste ensuite d ton côté à en faire une sauvegarde ou une compilation.
Sub Maj()
Dim URL$, obj As New DataObject

avant = "<table class=""c-table c-table--generic"" data-table-sorter>"

For i = 1 To Sheets("URL").Range("C" & Rows.Count).End(xlUp).Row
    DoEvents
    URL = Sheets("URL").Range("C" & i)
    On Error Resume Next
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .Send
        If .Status = 200 Then
                
                txt = avant & Split(Split(.responseText, avant)(1), "</table>")(0) & "</table>"
                obj.SetText txt
                obj.PutInClipboard
                ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
                ActiveSheet.Paste
                ActiveSheet.Name = Sheets("URL").Range("A" & i)
        
        End If
    End With
Next
MsgBox "Fin !"
End Sub
interroger historique des cours boursorama.xlsm
(22.73 Kio) Téléchargé 4 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'963
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 24 février 2020, 09:04

Au-delà de cette réponse rapide, je vais regarder comment répercuter les données dans une base.
Dans le tableau, quelle est la donné qu'il faut sauvegarder ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message