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

Contribuez Discussion :

[Pilotage Internet Explorer] Comment attendre la mise à jour d'un élément d'une page web …


Sujet :

Contribuez

  1. #61
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    bonjour marc

    la je comprends plus rien
    que dis tu (changement de page)?????
    l'url reste la meme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url = "http://www.developpez.net/forums/subscription.php"
    même en direct sur IE
    c'est plutôt une réécriture du moins je crois
    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

  2. #62
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut




    Après la validation du login, la page affichée change par deux fois même si pourtant l'URL reste la même.

    En traçant le titre du document comme la propriété LocalName d'IE …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #63
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    Re marc
    donc si je veux arriver a mes fins il faudrait pouvoir boucler sur le localname apres le login c'est ca
    est ce possible d'ailleurs ????

    je vais voir comment je peut faire merci du tuyaux
    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. #64
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut




    J'en suis certain et c'est plus simple que cette contribution !

    Deux voies possibles : soit attendre le titre de la page finale (juste de la comparaison de chaines de caractères),
    soit décompter le nombre de changement de titres …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #65
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    c'est bon entre temps j'ai trouver
    la encore une fois on joue sur la modification ou la présence d'un élément
    j'ai bloque la ligne sleep on en a plus besoins
    j'ai laisser le IE visible a true pour que tu vois bien que le message arrive même avant la fermeture de IE
    c'est pour te dire

    en vbs je le ferait plus tard en vba

    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
     
    Dim url, Ie, Iedoc ,tablo
    url = "http://www.developpez.net/forums/subscription.php"
    set oldtab=createobject("scripting.dictionary")
    Set Ie = CreateObject("internetexplorer.application")
    Ie.Visible = true
    Ie.navigate url
    Do: Loop Until Ie.readystate = 4
    Set Iedoc = Ie.document
    'On Error resume next
    for each elem in iedoc.all
    if elem.id="vb_login_username"then login=true
    next
    if login=true then 
    Set user = Iedoc.getelementbyid("vb_login_username")
    Set pass = Iedoc.getelementbyid("vb_login_password")
    user.Value = "identifiant"
    pass.Value = "motdepasse"
    Set bout = Iedoc.getelementsbyclassname("button")
    bout(0).Click
    end if 
    err.clear
    Do:  :Loop Until Ie.readystate = 4
    pret=false
     
    do
    lgtb=Iedoc.getelementbyid("threadlist")
    if lgtb="[object HTMLDivElement]" then pret = true
    loop until pret=true
    'wscript.sleep 1000
    code=Iedoc.getelementbyid("threadlist").outerhtml
    Ie.quit
    set Fpage=createobject("htmlfile")
    with Fpage
    .write code
    set tabtitre=.getelementsbytagname("h3")'titre de la question
     
    'j'ai fait juste un msgbox pour la première question mais tout est dans la variable code donc dans le 'body.innerhtml de Fpage
    msgbox tabtitre(1).innertext
    ' ici je referais ma décantation
     
    end with
    hihihihi ca marche trop bien
    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

  6. #66
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut

    Oui bien !

    Dans le meilleur du monde Web : le site ne rame pas, n'a pas d'erreur de base de données
    et n'est pas en maintenance, pas d'erreur de login, etc …

    Même souci en utilisant locationName de manière simpliste :
    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
    Sub DemoDVPlocationNameSimple()
        Const TITRE$ = "Abonnements - Forum du club des développeurs et IT Pro"
     
        With CreateObject("InternetExplorer.Application")
            .Navigate "http://www.developpez.net/forums/subscription.php"
            While .Busy Or .ReadyState < 4:  DoEvents:  Wend
            .Visible = True
     
            With .Document.forms(1)
                If .ID = "navbar_loginform" Then
                     .all(3).Value = "Identifiant"
                     .all(4).Value = "Mot de passe"
                    .submit
                End If
            End With
     
            While .locationName <> TITRE:  DoEvents:  Wend
     
    '       suite du traitement ici
        End With
    End Sub
    En regardant ton code, pas besoin de variable pour l'attente, exemple en remplaçant ma ligne n°17 par celle-ci :

    While IsNull(.Document.getElementByID("threads")): DoEvents: Wend

    Et alors la ligne n°2 déclarant la constante TITRE devient inutile …

    En testant ton code en VBA puis en procédant à une modification, j'ai de nouveau eu droit à l'erreur 70 :
    j'ai remplacé .getElementByID par .all et cela ne le fait pas du tout !

    Chacun de nos codes se retrouvera avec une boucle sans fin en cas de souci du site …

    Via la voie du décompte du nombre de changement de titre et sans gestion d'erreur,
    il est possible de bien faire face à d'éventuels soucis.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #67
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    Bonjour marc

    je suis en pause pour le repas mais après le boulot je regarde ca
    il est beau le code en tout cas plus propre que le mien
    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. #68
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut




    Merci Patrick !

    Partir d'une page blanche à parfois des avantages !

    Comme affirmé depuis le post #60, l'idée est simple et, en respectant la règle TBTO,
    le code - pas forcément beau (les goûts et les couleurs !) - en est naturellement simplifié …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #69
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    Re
    entre 2003 et 2007 il doit y avoir de sacrées différences de bibliothèque

    parce que justement avant de faire une ligne de code je comprenais pas pourquoi le changement de page était pas cohérent chez moi (pour le localname)
    et toi tu trouve les éléments dans un form hors chez moi c'était dans un div j'ai pourtant remonté le parentnode jusque au body et il n'y avais pas de form

    enfin je teste ca en rentrant avec vbs 64 et vba office 2007 32 bits
    pour le moment je digère

    édit. je l'avais fait comme ca comme je te l'avais dit
    While IsNull
    pour la table de "treadlist" et chez moi ca gênerait
    une erreur "utilisation non autorisé de la valeur null etc....."
    comme quoi 2003 et 2007

    edit encore une fois

    il y a aussi le test sur le login
    chez toi par le navbar.... chez moi par le vb,...... le navbar chez moi étant toujours présent dans le outerhtml même après entrer
    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. #70
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut

    Je crois bien l'avoir pourtant déjà testé dimanche sur la version 2007 d'Excel,
    je vais de nouveau regarder ce soir notamment pour la fonction VBA IsNull et les éléments threads & threadlist

    localName n'est pas interne à Excel mais bien à Internet Explorer !
    Mais là aussi, peu importe la version d'IE (tests sous v9, v10 et v11) …

    Quant à l'élément "navbar_loginform", dans la page du login c'est le deuxième élément de la collection forms du Document
    mais pas dans la page des abonnements !

    Une alternative est si IE.locationName (ou IE.Document.title) ne correspond pas à la page des abonnements,
    c'est donc la page du login (dans le meilleur du monde Web !) :
    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
    Sub DemoDVPlocationNameSimpleAlternative()
        Const TITRE$ = "Abonnements - Forum du club des développeurs et IT Pro"
     
        With CreateObject("InternetExplorer.Application")
            .Navigate "http://www.developpez.net/forums/subscription.php"
            While .Busy Or .ReadyState < 4:  DoEvents:  Wend
            .Visible = True
     
            If .locationName <> TITRE Then
                With .Document.forms("navbar_loginform")
                    .all(3).Value = "Identifiant"
                    .all(4).Value = "Mot de passe"
                    .submit
                End With
     
                While .locationName <> TITRE:  DoEvents:  Wend
            End If
     
    '       suite du traitement ici
        End With
    End Sub
    Ou encore en modifiant la ligne n°9 ainsi : If .locationName = "Forum du club des développeurs et IT Pro" Then

    Il m'est déjà arrivé de remplacer le fameux WaitIE du tutoriel par un test sur locationName,
    bien pratique lors du chargement d'une page intermédiaire avant la page finale (redirection) …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #71
    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,

    Eh bien vous foncez...
    Désolé je suis trés en retard sur vous...surtout que je viens de voir que vous avez mis des commentaires sur la version euronextallequities...

    En effet la page nasdaq n'est pas stable mais en le sachant et en pointant correctement avec une correction en amont cela ne provoque pas d'erreur...

    Marc tu m'indiques de mettre un Doevents au cas ou, il faut le mettre comme cela?
    Do While oTAll.Length <> 0: DoEvents: Loop

    Pour ton post 42 je regarde cela attentivement...au plus vite...et aussi poste sous peu la version nasdaq avec le gif comme repére(je l'ai retrouvée)...tu verras hormis des set et toi des . c'est la même chose (enfin je crois) sauf que tu seras surement un peu plus rapide avec les points...
    Mais si tu bloques le chargement aprés le onchange sur le gif(nous) ou dans la boucle(toi) cela doit revenir au même...

    Au plaisir

  12. #72
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut

    itwoo, on ne fonce pas vraiment, on est légèrement hors sujet depuis le post #48 en attendant ton retour sur le post #42 !
    Du reste ce hors sujet aurait mérité une contribution à lui seul …

    Pour DoEvents, oui comme la ligne n°14 du post #23 …

    Rappel : afin d'éviter les smileys indésirables à l'affichage,
    cocher la case « Désactiver les smileys dans le message » dans l'éditeur du post …

    Quant à la table, cela marche mais VBA ne supporte pas les fote d'ortografe !
    Car tableadata n'est pas l'objet déclaré tabledata ‼ Pourtant clair est le message d'erreur, tu aurais dû le voir !

    C'est normal quelque part de trouver une ressemblance s'agissant de récupérer les mêmes données !
    Et comme une contribution doit pouvoir servir à d'autres et croisant plus de pages web sans repère …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  13. #73
    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
    Marc merci j'ai corrigé le message...

  14. #74
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut

    Citation Envoyé par Marc-L Voir le message
    Je crois bien l'avoir pourtant déjà testé dimanche sur la version 2007 d'Excel, je vais de nouveau regarder ce soir notamment pour la fonction VBA IsNull et les éléments threads & threadlist

    Patrick, testé sans souci sous Excel 2007 la fonction IsNull combinée à threads ou threadlist
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  15. #75
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour itwoo t'é a la traine

    non je plaisante ...effectivement comme dit marc on est un peu hors sujet la

    Marc ne te gène pas pour en faire une autre (contrib)

    surtout que tu utilise une "const" donc peut être générique
    je viens de tester ca fonctionne effectivement en vbs 64
    je viens de constater aussi que en utilisant les "navbar" au lieu des vb bar ca va plus vite avec le test sur le location
    par contre avec le test sur le "treadlist" les vb sont plus rapide
    je n'est pas regardé dans l'inspecteur(F12 mon ami) mais a mon avis il doit y avoir 2 .JS ou argument différemment obtenu

    bon allez marc une contrib!!!...une contrib!!....

    en parlant de itwoo tu crois que ca vaudrait le coup de lui faire un Euronext all equities version 2 avec IE dans les vbs juste pour voir
    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

  16. #76
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut

    Pour itwoo je n'en sais rien car franchement je ne me suis pas penché sur EuroNext
    mais à partir du moment qu'il dispose d'une solution bien plus véloce via une bibliothèque de requêtes,
    il ne doit pas trop en avoir besoin … Mais ne te gêne pas Patrick !

    Cette contribution était juste pour répondre à la problématique à l'origine de sa discussion,
    savoir comment contrôler la mise à jour d'un élément d'une page Web par le pilotage d'Internet Explorer …
    Et cela pourrait être utile à d'autres !

    Pour ton exemple de la page des abonnements de ce site, j'ai évoqué le décompte du nombre de changement du titre
    afin d'éviter des surprises, mais ce n'est pas vraiment utile ici car comme l'identification est en dur dans le code
    il y a peu de chance qu'elle échoue … Toutefois, je préfère blinder en utilisant getElementsByName
    renvoyant une collection même si il n'y a pas d'élément, sa propriété length est à zéro alors …

    Si le site est à l'Ouest, peu de chance de plantage ainsi :
    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
    Sub DemoDVPlocationNameAlternative()
        Const TITRE$ = "Abonnements - Forum du club des développeurs et IT Pro"
     
        With CreateObject("InternetExplorer.Application")
            .Navigate "http://www.developpez.net/forums/subscription.php"
            While .Busy Or .ReadyState < 4:  DoEvents:  Wend
            .Visible = True
     
            With .Document.getElementsByName("navbar_loginform")
                If .Length = 1 Then
                    With .Item(0)
                        .all(3).Value = "Identifiant"
                        .all(4).Value = "Mot de passe"
                        .submit:  CT% = 1
                    End With
                End If
            End With
     
            If CT Then While .locationName <> TITRE: DoEvents: Wend
     
            With .Document.getElementsByName("threadlist")
                   OK% = .Length = 1
                If OK Then
                    With .Item(0)
    '                   suite du traitement ici
                    End With
                End If
            End With
     
            If Not OK Then .Quit: Beep
        End With
    End Sub
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  17. #77
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    re
    d'accords Marc la gestion du site a l'ouest par "le length =1 "en plus je prend !!!!!

    on pourrait même ajouter a ce niveau un "TIME OUT " pourquoi pas ?en cas ou l'ouest changerait de coté

    Pour itwoo je n'en sais rien car franchement je ne me suis pas penché sur EuroNext
    mais à partir du moment qu'il dispose d'une solution bien plus véloce via une bibliothèque de requêtes,
    pour Nasdaq il en a une aussi avec xmlhttp 3 seconde pour 10 ans en une seule requête, c'est pour ca que je comprenais pas ses demandes avec IE et la gestion d'attente
    de toute façon ca n'a jamais fait de mal a personne d'apprendre
    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

  18. #78
    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 513
    Points
    12 513
    Billets dans le blog
    8
    Par défaut re
    tenez marc et itwoo Une piqure de rappel
    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
     
     Sub nasdaq()
    faire_ceci_ou_cela = colle_moi_ca_dans_le_sheet("http://www.nasdaq.com/symbol/f/historical", "10y", Cells(1, 1))
    End Sub
    Function getsource(url, argmts)
    With CreateObject("microsoft.xmlhttp")
    .Open "POST", url, False
    'entete de la requette obligatoire pour ce site(ne fonctionne pas sans )
    .setRequestHeader "Accept", "*/*"
    .setRequestHeader "Content-Type", "application/json"
    .setRequestHeader "X-Requested-With", "XMLHttpRequest"
    .setRequestHeader "Referer", "http://www.nasdaq.com/symbol/f/historical"
    .setRequestHeader "Accept-Language", "fr-FR"
    .setRequestHeader "Accept-Encoding", "gzip, deflate"
    .setRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
    .setRequestHeader "Host", "www.nasdaq.com"
    .setRequestHeader "Content-Length", "11"
    .setRequestHeader "DNT", "1"
    .setRequestHeader "Connection", "Keep - Alive"
    .setRequestHeader "Cache-Control", "no-cache"
    .send argmts & "|false|F"
    getsource = .responsetext
    End With
    End Function
    Function colle_moi_ca_dans_le_sheet(url, argmts, cel)
    With CreateObject("htmlfile")
            .body.innerhtml = getsource(url, argmts)
            faire = .ParentWindow.clipboardData.SetData("text", .getelementsbytagname("table")(0).outerhtml)
            With Sheets(1): cel.Select: .Paste: End With
            Selection.HorizontalAlignment = xlLeft
            faire = .ParentWindow.clipboardData.ClearData("text")
           End With
    End Function
    voila pourquoi je dis que quand je comprends pas ....je comprends pas

    vaccin:
    AVEC INTERNET EXPLORER

    1°tu ouvre ta page Nasdaq
    2° tu ouvre mon ami F12
    3° tu clique sur "démarrer la capture"
    4° TU REVIENS SUR INTERNET EXPLORER ET tu clique sur la combo et tu choisi la durée
    5° tu attend c'est normal c'est Nasdaq
    5° une fois que c'est venu tu reprend la fenêtre de mon ami F12
    6° tu clique arrêter la capture
    7° tu te retrouve avec une seule ligne
    8° tu clique vue détaillée
    9° tu clique sur corps de la demande
    10° tu copie ca d'en un coin( se sera l'argument du send de la requête)
    11° tu clique sur entête de la demande
    12° tu copie tout a partir de "accept"
    13° tu remplace les triple espace de ce que tu viens de copier par (",")et un guillemet de chaque coté de la phrase complète et tu met devant ".setRequestHeader"dans le cas ou la requête est dans un block "with/end with"si ca n'est pas les cas la variable représentant la requeté devant le point
    14° regarde le résultat dans la piqure de rappel


    moi personnellement j'aime pas les piqures mais si sa peut aider

    |EDIT]
    CONCERNANT abbv L'ARGUMENT POUR LE SEND C'EST "10y|false|ABBV"la aussi l'entête est obligatoire
    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

  19. #79
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 9 468
    Points : 18 773
    Points
    18 773
    Par défaut




    J'entendais par site à l'Ouest quand il affiche erreur base de données ou est en maintenance.

    Mais effectivement lorsqu'il rame à l'ouverture, cela peut se gérer via un Timeout juste après le Navigate du genre du post #18 …

    Ton code via requête ressemble à mes essais, un en passant par le Presse-papiers puis conversion des données
    et l'autre via une variable tableau …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  20. #80
    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,

    Marc pendant que je regarde tes posts+ tests voici en attendant l'ancien code pour nasdaq:
    c'est vrai qu'il manque:
    un timeout éventuel sur la boucle de vérification du gif (si le site est long) non corrigé
    aussi pointage sur la table(3) qui parfois devient 4 ou autre...mais cela a été corrigé version suivante
    Pour info plus testé cela depuis un moment(et surtout pas pendant longtemps) car utilisation de la requête...mais normalement cette version marche sans faille.
    La condition est positionnée aprés le onchange (pour éviter tout probléme, il n'y a pas continuation tant que block n'est pas passé)...et non sur la table comme toi mais sinon ca me semble équivalent...donc ici blocage des problémes éventuels au départ
    ici ce sont des set et non des .

    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
    Sub DemoNASDAQie()
        Const URL$ = "http://www.nasdaq.com/symbol/abbv/historical"
        'Const URL$ = "http://www.nasdaq.com/symbol/f/historical"
        Const TXT$ = "        Import en cours "
        Application.StatusBar = TXT & "…"
        Dim table
     
        Set IE = CreateObject("InternetExplorer.Application")
          IE.Navigate URL
            While IE.Busy Or IE.readyState < 4:  DoEvents:  Wend
          IE.Visible = True
     
        Set IEDoc = IE.Document
                If InStr(IEDoc.body.innerHTML, URL) Then
                Set htmlSelectElem = IEDoc.all("ddlTimeFrame")
                htmlSelectElem.Value = "10y"
                IEDoc.all("ddlTimeFrame").onchange
                End If
     
        Set pret = IEDoc.getElementById("ajaxloader")
                 Do:    DoEvents:   Loop While LCase(pret.Style.display) = "block"
     
       Set htmlTagCol = IEDoc.getElementsByTagName("table")
       Set tabledata = htmlTagCol.Item(3) 'va choisir la table n°4 (celle des données)
                    T0$ = tabledata.outerHTML
      IE.Quit
    ...
    end sub

Discussions similaires

  1. [MySQL] Comment extraire des données dans un fichier .svc depuis une page web
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/12/2013, 12h02
  2. Réponses: 1
    Dernier message: 08/07/2009, 11h52
  3. [XL-2003] Faire mise à jour fichier excel stocké sur une page web
    Par fidecourt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/04/2009, 17h12
  4. Comment ouvrir Word ou Acrobat Reader à partir d'une page web ?
    Par Kuuei dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 17/05/2006, 15h18
  5. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52

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