IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pilotage Internet Explorer


Sujet :

Macros et VBA Excel

  1. #161
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,

    Ok ok super idée
    Ici...suis toujours en test sur pas mal de valeurs mais ca semble tenir C'est génial
    Par contre c'est vrai que je n'avance pas vite (surtout aussi pas beuacoup de temps dispo)
    Mais merci pour tout
    Bon WE

  2. #162
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    A 1° vue tout marche et c’est vrai que ta version finale Patrick est extraordinairement simplifiée et efficace, plus de complication, de module de classe…L’idée de Qwaz d’interroger directement le serveur fut vraiment géniale !!!
    De ton côté tu utilises POST à la place de GET avec une option false (que l’on peut aussi mettre avec GET) mais comment se déclenche t’elle ?

    Une autre question pour info car j’ai toujours un peu de mal sur ce point dans la version de Qwaz:
    Les modules de classe permettent de décoder le fichier texte DemandeFichier.responseText, en le mettant sous forme
    ParseData("data") avec
    - : ParseData : : Object/Dictionary mais lorsque clique sur variable locale il n'y a pas le détail des données de ParseData juste
    : Count : 1 : Long
    : Item 1 : "data" : Variant/String
    puis
    + : Item : : Variant/Object/Dictionary
    : Count : 11 : Long
    : Item 1 : "ISIN" : Variant/String ...........

    chaque donnée va venir ensuite en Feuil4, mais où peut on voir les lignes de données de ParseData sous la fenêtre variable locale? La seule soluton est elle de créer un autre objet où l'on vient mettre toutes ses données pour pouvoir les voir?

    Bien normalement tout marche donc d’ici peu étude en grand nombre. Ensuite ce sera résolu

    Au plaisir

  3. #163
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    la méthode post oblige la requête a récupérer les donnée sur le site
    la méthode GET peut aller chercher les données dans le dossier temporaire d'internet
    ce qui implique que les données peuvent être erronées

    quand a la classe de qwazerty comme il a indiqué le parser est bien trop verbeux ce qui implique une métrise plus importante de ce langage
    ce n'est pas mon cas
    surtout que les données sont assez nombreuse donc temps d'exécution assez important

    on est don plus de 6 mois apres ta demande et j'espere que tu va cliquer résolu car on a bosser comme des dingues sur ton projet

    j'ai beaucoup appris moi même j'utilise pourtant l'Object "Microsoft xmlhttp" depuis bien longtemps

    donc je te remercie pour ca et en espérant que ca te soit utile pour un bon moment
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #164
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,

    D'accord pour la précision...
    Ah ca oui vous avez sacrément bossés et suis content que toi aussi tu aies appris des choses (moi j'ai tout appris quasiment ).
    Oui j'ai hate de cliquer sur résolu, ca ne devrait pas tarder
    Au plaisir

  5. #165
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut si clic résolu
    au fait si clic sur résolu cela ferme-t-il la discussion ou est il encore possible des poser des questions ou signaler une erreur surprise si besoin?

  6. #166
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut info
    Bonjour,

    Pour la procédure sur nasdaq aprés pleins de tests et retests (si le site n'évolue pas) il n'y a pas la moindre erreur et en plus cela est 3 fois plus rapide
    CHAPO

    Tests euronext en cours.

    Vous avez été TOP.

  7. #167
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour itwoo

    pour le résolu il te suffit de recliquer résolu et ca ré ouvre la discussion

    pour les test il est temps

    en effet tant que le site ne changera pas la structure de ces pages tu n'aura aucun problème avec le dernier exemple que je t'ai donné

    t'za d'autre exercice a faire comme ca je commence a m'ennuyer
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #168
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut RESOLU
    Bonjour,

    Ca y est pour pas d'erreur non plus pour euronext!!!
    Donc c'est RESOLU.....
    D'autres questions ou demandes c'est possible mais pas avant un mois le temps de tout mettre en ordre...
    ET ENCORE MERCI POUR TOUT A VOUS
    Au plaisir

  9. #169
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour Itwoo

    Comme on dis chez nous A LA BONNE HEURE !!!! pour ma part je fait les test 3 fois par jour depuis la derniere version que je t'avais donné et je n'ai eu aucune erreur

    je garde une copie au cas ou

    c'est quand même la discussion la plus longue que j'ai eu (plus de 6 mois )

    une belle aventure,j'ai beaucoup appris moi même

    n'hésite pas si tu a des soucis dans le futur mais la je crois qu'on est parti pour un bon moment


    puisque en 6 mois la structure des pages n'a pratiquement pas changée a part certains petits détails qui sont sans importance par rapport a ton besoin

    Au plaisir


    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #170
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour itwwo
    tiens comme promis voila un petit cadeau

    récupère le vite j'ai besoins de place
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #171
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut besoin d'un peu d'aide
    Bonjour,

    Il semblerait qu'avast empêche le téléchargement de ta version ULTIMATE...

    Sinon voici un petite question qui ressemble fortement au reste mais résiste sur Euronext...

    l'objectif est de charger tous les cours à la cloture et non page par page...tout simplement.
    La requête d'interrogation du serveur est ok, seul manque le paramétre pour télécharger toutes les pages.

    Voici l'adresse URL sur euronext choisir: equities=>All Equities=>Equities directory
    https://europeanequities.nyx.com/fr/equities-directory

    voici la requête
    'On code l'URL ici marche pour la dernière page de la page des Z
    URl = "https://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:516b26b340de4f5b217da5dbbb5fe4a6"
    On code l'URL ici marche pour la première page de la page des A
    URl = "https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:1006ef55d4998cc0fad71db6a6f38530"
    test pour toutes les valeurs pas moyen d'y arriver!!!
    URl = "https://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:all "


    Il y a plein de paramétres dans params: forms data: notamment iDisplayLength:"20" qui indique l'affichage de 20 éléments par page...

    Pouvez vous me dire comment modifier la requête pour obtenir toutes les cotations et non pas juste les 20 de la page, merci

    A bientôt

  12. #172
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut voici la requête à améliorer
    Bonjour,

    Merci Patrick j'ai ta version ULTIMATE. Il faut que je la travaille pour la comprendre...
    Sinon voici ici la requête pour euronext mais elle ne charge que la 1° page des A...pour l'instant juste réussi à charger page par page car pas moyen de trouver la bonne syntaxe dans l'URL pour la requête (malgré ce qui a déjà été fait et expliqué précédemment).
    Si Qwaz ou toi avez une idée...
    Bon WE
    A bientôt

  13. #173
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut PURE DE PURE DE PURE
    Bonjour itwoo

    OUFFFFF tu m'a foutu le vrai micmac la dedans tu a même laissé des artefacts pour Nasdaq

    bon on va repartir du début donne moi le lien de la page et des indications claires de ce que tu veux récupérer

    attention je veux le lien de la page que tu vois a ton écran pas celle du json ou tout autre fichier JS pour ca laisse moi faire

    soit le plus explicite possible et n'oublie pas que moi je n'y connais rien en boursicotage

    tu es vraiment un assassin mon pauvre beau fichier que j'avais fait le pauvre.........
    heureusement que j'en ai gardé un exemplaire
    je vais lui faire un mausolée

    31/10/2013, 12h20 c'est la date de ta 1 ère demande ca te donne une idée du boulot effectué sur ce projet alors soit moins cruel avec mes fichiers

    et au fait débloque le résolu en recliquant dessus si tu veux que la participation soit plus conséquente en terme participants
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #174
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re pour les datas
    j'ai regardé un peu les lien vers les JS que tu utilise et ce n'ai pas un soucis de lien je crois c'est un problème du parseur qu'il faut adapter a celui ci
    en effet les indices du découpage se faisaient pas les mot isin etc.....par la variables carccoupé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    carccoupé = Array("Isin", "Libellé", "Cours", "Date")
    ces indices sont absents de ces fichiers js alors forcement ca bug


    il te faut donc revoir tout le parseur (split ,replace ,mid etc...) toutes ces fonctions la
    tu y arrivera ?????

    voici 2 ligne de 2 valeur telle quelle sont dans le fichier que j'ai séparé ensuite par un saut de ligne

    [["\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/FR0010285965-ALXP\/quotes\" class=\"ttrigger upper-bold\"\u003e1000MERCIS\u003c\/a\u003e\u003cdiv class=\"tooltip\"\u003e\r\n\t\u003cdiv class=\"bg\"\u003e\r\n\t\t\u003cul class=\"instrument-info\"\u003e\r\n\t\t \t\u003cli\u003e\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/FR0010285965-ALXP\/quotes\" target=\"_blank\"\u003eQuotes\u003c\/a\u003e\u003c\/li\u003e\r\n\t\t \t\u003cli\u003e\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/FR0010285965-ALXP\"\u003eMore Info\u003c\/a\u003e\u003c\/li\u003e\r\n\t \t\u003c\/ul\u003e\r\n\t\u003c\/div\u003e\r\n\u003c\/div\u003e","FR0010285965","ALMIL","Alternext Paris"," 49,04","\u003cspan class=\"green\"\u003e0,20%\u003c\/span\u003e","27 Jun 2014 17:35 "],


    ["\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/BE0974275076-XBRU\/quotes\" class=\"ttrigger upper-bold\"\u003e4ENERGY INVEST\u003c\/a\u003e\u003cdiv class=\"tooltip\"\u003e\r\n\t\u003cdiv class=\"bg\"\u003e\r\n\t\t\u003cul class=\"instrument-info\"\u003e\r\n\t\t \t\u003cli\u003e\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/BE0974275076-XBRU\/quotes\" target=\"_blank\"\u003eQuotes\u003c\/a\u003e\u003c\/li\u003e\r\n\t\t \t\u003cli\u003e\u003ca href=\"https:\/\/www.euronext.com\/en\/products\/equities\/BE0974275076-XBRU\"\u003eMore Info\u003c\/a\u003e\u003c\/li\u003e\r\n\t \t\u003c\/ul\u003e\r\n\t\u003c\/div\u003e\r\n\u003c\/div\u003e","BE0974275076","ENINV","Euronext Brussels"," 3,69","\u003cspan class=\"green\"\u003e4,53%\u003c\/span\u003e","27 Jun 2014 17:09 "],
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #175
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut Remise en ordre lol
    Bonjour Patrick,

    Non non rassures toi je n'ai pas ni modifié ni détruit tout le reste fait jusqu'à présent Loin de là je l'ai précieusement ici et ca marche sans probléme...c'est vraiment super
    Ici c'est pour autre chose...c'est pour continuer, tu vas voir il y a juste un nom isin cours date
    Cette requête mise en ligne marche avec son parseur mais ne récupére que 20 lignes de la 1° page et pas moyen de récupérer autrement que page par page toutes les lignes
    Voici le lien https://www.euronext.com/equities-directory
    tu vas sur euronext puis equities (en blanc en haut à gauche) puis dans le bandeau défilant All Equities et là il y juste la 1° page qui s'affiche avec 1-20 of 1,459 items displayed .(et le titre de la page web sera All Equitie | Euronext
    Donc ici j'ai essayé d'adapter ce qui avait déjà été fait mais pas moyen de trouver la bonne URL pour tout récupérer...il faut faire page par page ce qui n'est pas top
    Pour le parseur je l'ai juste réadapté pour les 20 lignes de data (enfin grosso modo en attendant de connaitre la syntaxe précise de toutes la récupération des datas)
    Mais le parseur affiche bien les datas correctement sur la page excel...normalement il est réadapté pour les lignes récupérées (cela dit il sera possible de l'améiorer encore en tenant compte des séparateurs euronext lignes ],[ et champs "," (ici juste tenu compte des séparateurs de champs)
    Ensuite tu trouveras plein d'explication sur la démarche en vert pour ne pas être perdu...explication peut être pas clair
    A bientôt

  16. #176
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut PS résolu
    Ca y est il est décoché là le bouton résolu?

    Et merci pour le trés trés gros boulot fait derrière

  17. #177
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Pour ne pas que tu cries victoire trop vite, ça n'est pas fonctionnel mais....

    Le principe pour cette page est le même que pour nasdaq, il faut transmettre les paramètres avec le SEND, la ligne de paramètres transmise est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DemandeFichier.send "sEcho=5&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
    Il faut également modifier un peu l'entête de requête je pense en ajoutant (avant le send)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        DemandeFichier.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"  'Ajouté
        DemandeFichier.setRequestHeader "Content-Length", "231"  'Ajouté
        DemandeFichier.setRequestHeader "Cache-Control", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Accept-Language", "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3"
        DemandeFichier.setRequestHeader "Connection", "keep-alive" 'Modifié, espace retiré "keep -alive"
        DemandeFichier.setRequestHeader "Pragma", "no-cache"  'Ajouté
    Une fois intégré ça donne ça, j'ai remis la création du fichier pour voir rapidement s'il y a un résultat positif ou non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Sub XMLReq_Euronext()
    Dim IEDoc As HTMLDocument
    Dim ElemTableau As HTMLGenericElement
    Dim html_table As HTMLTable
    Dim StreamFile As New ADODB.Stream
    'cette sub va interroger le serveur pour récupérer toutes les données du jour
    'Il faut activer la bibliotheque Microsoft WinHTTP Service
       'Application.ScreenUpdating = True
        'page_blanche
        Application.ScreenUpdating = False
        Dim DemandeFichier As MSXML2.XMLHTTP, URl As String
        Set DemandeFichier = CreateObject("Microsoft.XMLHTTP")  'instancie l'object
     
        Dim texte, table
        'ICI PAS REUSSI A RECUPERER TOUTES LES DATAS EN UNE FOIS DES PAGES:
        'Voici l'adresse URL sur euronext choisir: (equities=>All Equities=>Equities directory)
        '
     
        'On code l'URL ici marche pour la dernière page la page des Z
        'URl = "https://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:516b26b340de4f5b217da5dbbb5fe4a6"
        'On code l'URL ici marche pour la première page la page des A
        'URl = "https://europeanequities.nyx.com/fr/equities-directory" 'https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:1006ef55d4998cc0fad71db6a6f38530"
        URl = "https://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:1006ef55d4998cc0fad71db6a6f38530"
        'un test avec idisplaylength
        'URl = "https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:1006ef55d4998cc0fad71db6a6f38530& iDisplayLength:1400"
        'test pour toutes les valeurs
        'URl = "https://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:all    "
     
        'On génère la requête
        DemandeFichier.Open "POST", URl, False
        DemandeFichier.setRequestHeader "Accept", "application/json, text/javascript, */*"
        DemandeFichier.setRequestHeader "Accept-Encoding", "gzip , deflate"
        DemandeFichier.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"  'Ajouté
        DemandeFichier.setRequestHeader "Content-Length", "231"  'Ajouté
        DemandeFichier.setRequestHeader "Cache-Control", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Accept-Language", "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3"
        DemandeFichier.setRequestHeader "Connection", "keep-alive" 'Modifié, espace retiré "keep -alive"
        DemandeFichier.setRequestHeader "Host", "europeanequities.nyx.com"
        DemandeFichier.setRequestHeader "Pragma", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Referer", "https://europeanequities.nyx.com/fr/equities-directory"
        DemandeFichier.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.0; rv:29.0) Gecko/20100101 Firefox/29.0"
     
        'On l'exécute la requête (avec les parametres comme pour NASDAQ)
    'Avec les parametres au complet, fonctionne
    'DemandeFichier.send "sEcho=5&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
        DemandeFichier.send "sEcho=5&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
        'Reduction du nombre de parametre
        'DemandeFichier.send "iDisplayStart=0&iDisplayLength=20"
     
        'On charge les données html transmises dans un htmlDocument
        Set IEDoc = New HTMLDocument
        IEDoc.body.innerHTML = DemandeFichier.responseText
        Set html_table = IEDoc.all("stocks-data-table")
     
     
        'On copie les données dans un fichier
        StreamFile.Type = 1                              'binary
        StreamFile.Open
        StreamFile.Write DemandeFichier.responseBody
        StreamFile.SaveToFile "E:\Data.html", 2                'overwrite
        StreamFile.Close
     
    end sub

    Concernant les paramètres passés au SEND, ceux qui te préoccupent sont "iDisplayStart=0&iDisplayLength=20" mais avant de commencer à les modifier, mais pour le moment la modofication des valeurs n'a pas fonctionnée, le serveur n'accepte peut-être pas de donner plus de 20 lignes à la fois.
    Autre point intéressant, dnas le ReponseTexte qui est faite, iTotalRecords transmet le nombre total d'enregistrement, dans le principe, on fait une 1ère requête, on récup. cette valeur et on refait une requête pour la globalité des données... dans le principe...

    Il serait peut-être intéressant de faire un essai en réutilisant le parser JSON que j'avais trouvé sur le net.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  18. #178
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,

    D'accord Qwaz si je comprends bien
    soit le serveur accepte de donner plus de 20 valeurs à la fois mais il faut trouver comment,
    soit sinon récupérer lors de la 1° requête ce nombre total de valeurs iTotalRecords et boucler par 20 valeurs jusqu'à la fin en modifiant "iDisplayStart=0&iDisplayLength=20" dans cette chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DemandeFichier.send "sEcho=5&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"

    Pour le parser le split de Patrick marche bien il suffit de l'adapter en fonction du fichier retourné, mais si besoin utilisation du Json que tu avais récupéré...

    Actuellement j'avais fait un test en récupérant page par page avec modification de l'URL pour chaque page (mais d'une lourdeur horrible) en remarquant que le Value (en fin d'URL): correspondant à chaque page était toujours le même...par ex de page A: 1006ef55d4998cc0fad71db6a6f38530 à page Z: 516b26b340de4f5b217da5dbbb5fe4a6

    bien test en préparation...
    A bientôt

  19. #179
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Je crois que tu fais une méprise.
    Il ne faut pas utiliser les page de A à Z mais les pages de 1 à x.

    La partie variable de l'adresse dont tu me parles n'est qu'une clé pour permettre au serveur de filtrer les données, si tu retires la référence à cette clé, le serveur renvoie un itotal de 26K réponses je crois.

    J'avais fais quelques essais supplémentaires après ma réponse, le serveur ne semble pas accepter d'envoyer plus de 20 valeurs mais en plus les bornes haute et basse doivent être un multiple de 20.

    Si tu lui demandes les enregistrements à partir de 10, il te renvoie les enregistrements à partir de 0. Si tu lui dis de partir au 25ème, il commence au 20ème, etc.

    En résumé, en effet, je pense que la solution est de faire une 1ère requête à partir de 0 en demandant 20 lignes, puis de prendre en compte le itotal retourné par la requête et de continuer (si besoin) en refaisant des requêtes de 20 en 20 en changeant le paramètre qui va bien dans le SEND.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  20. #180
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut heu....
    Bonjour itwoo et qwazerty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    Sub XMLReq_Euronext()
    'cette sub va interroger le serveur pour récupérer toutes les données du jour
    'Il faut activer la bibliothèque Microsoft WinHTTP Service
         Application.ScreenUpdating = False
        Dim DemandeFichier As Object, URl As String
        Dim FSys As Object, MonFic
        Dim texte As String
        Set DemandeFichier = CreateObject("Microsoft.XMLHTTP")  'instancie l'object
          URl =  "ohttps://europeanequities.nyx.com/pd/stocks/data?formKey=nyx_pd_filter_values:1006ef55d4998cc0fad71db6a6f38530"
        'On génère la 1 ere requête afin d'obtenir les 20  1ere ligne ainsi que le nombre de page
        DemandeFichier.Open "POST", URl, False
        DemandeFichier.setRequestHeader "Accept", "application/json, text/javascript, */*"
        DemandeFichier.setRequestHeader "Accept-Encoding", "gzip , deflate"
        DemandeFichier.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"  'Ajouté
        DemandeFichier.setRequestHeader "Content-Length", "231"  'Ajouté
        DemandeFichier.setRequestHeader "Cache-Control", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Accept-Language", "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3"
        DemandeFichier.setRequestHeader "Connection", "keep-alive" 'Modifié, espace retiré "keep -alive"
        DemandeFichier.setRequestHeader "Host", "europeanequities.nyx.com"
        DemandeFichier.setRequestHeader "Pragma", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Referer", "<a href="https://europeanequities.nyx.com/fr/equities-directory" target="_blank">https://europeanequities.nyx.com/fr/equities-directory</a>"
        DemandeFichier.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.0; rv:29.0) Gecko/20100101 Firefox/29.0"
     'on envoie la requete avec un idisplaystart= a 0
           DemandeFichier.send ' "sEcho=5&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
      'separateur de page pour le fichier texte
     coupure = "*************************************************************************" & vbCrLf & "page : " & 1 & vbCrLf & "*************************************************************************" & vbCrLf
     'on inscrit la 1ere page du fichier texte
     texte = coupure & DemandeFichier.responseText
     
     ' on détermine le nombre de page a télécharger en récupérant le iTotalRecords dans la première page et en divisant par 20
     NBPAGES = Round(Val(Split(Split(DemandeFichier.responseText, "iTotalRecords"":")(1), ",")(0)) / 20)
     
     'MsgBox nbpages
      'il y a au minimum 70 pages alors la patience est de rigueur prend un café une bierre un coca tu a le temps
      For i = 1 To 5 'NBPAGES  'enleve le 5 et debloque nbpages pour la totale
      coupure = "*************************************************************************" & vbCrLf & "page : " & i + 1 & vbCrLf & "*************************************************************************" & vbCrLf
       DemandeFichier.Open "POST", URl, False
       DemandeFichier.setRequestHeader "Accept", "application/json, text/javascript, */*"
        DemandeFichier.setRequestHeader "Accept-Encoding", "gzip , deflate"
        DemandeFichier.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"  'Ajouté
        DemandeFichier.setRequestHeader "Content-Length", "231"  'Ajouté
        DemandeFichier.setRequestHeader "Cache-Control", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Accept-Language", "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3"
        DemandeFichier.setRequestHeader "Connection", "keep-alive" 'Modifié, espace retiré "keep -alive"
        DemandeFichier.setRequestHeader "Host", "europeanequities.nyx.com"
        DemandeFichier.setRequestHeader "Pragma", "no-cache"  'Ajouté
        DemandeFichier.setRequestHeader "Referer", "<a href="https://europeanequities.nyx.com/fr/equities-directory" target="_blank">https://europeanequities.nyx.com/fr/equities-directory</a>"
        DemandeFichier.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.0; rv:29.0) Gecko/20100101 Firefox/29.0"
        DemandeFichier.send "sEcho=5&iColumns=7&sColumns=&iDisplayStart=" & i * 20 & "&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
       texte = texte & vbCrLf & coupure & DemandeFichier.responseText
     
      Next
          'On copie les données dans un fichier
        Set FSys = CreateObject("Scripting.FileSystemObject")
        Set MonFic = FSys.CreateTextFile("c:\Data.txt")
        With MonFic 'Pour écrire dans le fichier texte
            .write texte
        End With
        MsgBox "donnée récupérées dans c:\data.Txt"
     
      End Sub
    enleve le "o" devant l'adresse de l'url
    'a la place de la création du fichier text tu peut travailler sur la variable "texte" qui contient toutes les pages

    mais c'est un peu long quand même
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 9 sur 17 PremièrePremière ... 5678910111213 ... DernièreDernière

Discussions similaires

  1. Réponses: 193
    Dernier message: 13/12/2014, 08h48
  2. [XL-2010] Pilotage Internet explorer contenant javascript depuis excel
    Par anthony14123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 16h08
  3. [XL-2003] Pilotage Internet Explorer
    Par clarinet dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 25/03/2013, 20h13
  4. Pilotage Internet Explorer
    Par bolof dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/09/2012, 22h25
  5. [OLE] Pilotage internet explorer
    Par yaclo dans le forum MFC
    Réponses: 4
    Dernier message: 22/03/2005, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo