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 :

Taille du fichier en exponentiel suite requete puis optimisation [XL-2013]


Sujet :

Macros et VBA Excel

  1. #381
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    J"etais parti dans le plus compliqué, mais cela se ressemble

    Mon idée était, recup de la date selon format (ça on n'a), puis recup des liens des courses du jour, remplacer les liens par le nom des prix, puis comparer avec celui que l'on veux pour enfin recup les rapport...

    Bon je suis naze, demain je me penche là-dessus, je suis dispo une bonne partie de la journée....

    JE te laisse

    Seb

  2. #382
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    Bonjour Patrick,

    Je regarde çà aujourd'hui, je suis dans la recherche pour l'instant, merci de me laisser faire pour voir....
    Je déclare 3 variables en Public, car je suis dans un autre module pour ne pas charger celui qui existe déjà
    alors 1 aller ici"http://www.zeturf.fr/fr/resultats-et-rapports/?day=2015-07-28"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public oldate
    url = "http://www.zeturf.fr/fr/resultats-et-rapports/?day=" & (Format(oldate, "yyyy-mm-dd"))
    dès que la page est accessible aller au nom de l'hippodrome
    ensuite dès que l'on arrive à la page des courses, récupérer le lien dans le nom du prix ( ca on l'a aussi)
    Je vais le récup dans html le lien en fonction du prix
    public nomprix
    nomprix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a title="Prix Paris Turf" class="upper" href="http://www.zeturf.fr/fr/programmes-et-pronostics/course?id=162533">Prix Paris Turf</a>
    voila essai d'automatiser ca tu a largement vu les exemples que je t'ai donné
    C en cours

    Seb

    PS: dans le fichier 65, l'indice de confiance dans la recup et bdd, n'et pas classé du plus petit indice au plus grand, ce qui peut trompé????

  3. #383
    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
    chez moi la confiance est bonne

    pour t'aider j'ai fait une maquette avec IE qui va chercher la bonne page archive de la course

    par la suite j'ai fait la meme chose avec requete et finaliser la récupération des infos gains donc pour moi c'est fini

    mais avec cette maquette tu vois comment je fait pour atteindre la page raport de la course
    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
     Sub raportzeturf(oldate, hippo, nomprix)
    Dim IE, url
    hippo = UCase(hippo): nomprix = LCase(nomprix): oldate = Format(newdate, "yyyy-mm-dd")
    'on va vers les hippodromes
    url = "http://www.zeturf.fr/fr/resultats-et-rapports/?day=" & oldate ' &2015-07-28
     Set IE = CreateObject("internetexplorer.application")
    IE.navigate url: IE.Visible = True ' j'affiche internet pour que tu vois que c'est la bonne page
     Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy 'on attends que ie soit pret
     
     
     
      'on cherche le bon hippodrome qui nous donne le lien des course de ce jour
      Set tdhipo = IE.document.getelementsbytagname("td")
      For Each elem In tdhipo: If elem.innertext = hippo Then lien1 = elem.Children(0).href: Exit For
      Next
     'on renavigue avec la meme fenetre vers les courses
     IE.navigate lien1 'on change de page on va vers le liens des courses
     Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy 'on attends que ie soit pret
     ' on cherche la bonne course
     Set tdprix = IE.document.getelementsbytagname("a")
      For Each elems In tdprix
     
       If Trim(LCase(elems.innertext)) = Trim(nomprix) Then lien2 = elems.href: Exit For ' on a trouvé la bonne course c'est le lien2
       Next
    IE.navigate lien2 ' et enfin on va vers la page de raport de cette satané course
    Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy 'on attends que ie soit pret
     
    '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ' A PARTIR DE LA ON PEUT RECUPERER LES TABLE DE GAINS
    'Simple  'ZE couillon, 'Jumelé,'Trio,'Triordre,'ZE 2 sur 4,'ZE 4,'ZE 5,'ZE 234,'ZE 345
     
    End Sub
    Sub test()
    raportzeturf "28/07/2015", "chantilly", "Prix du Bois Brandin"
    End Sub
    Sub test2()
    raportzeturf "30/07/2015", "DEAUVILLE", "Prix DE LA PLAINE DE CAEN "
    End Sub
    amuse toi 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

  4. #384
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    Salut,

    Ah oui, c bien plus simple que ce que je suis en train de faire....

    Moi j'étais parti pour récupérer tous les liens des réunions, puis des chaque courses pour enfin compare "title" avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    titre = hippo & " - " & nomprix
    Bref une usine à gaz puissance 10....

    Bon c pas encore çà, pour que je ponde un code digne de ce nom....

    Bon je continue avec ton code pour les rapports

  5. #385
    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
    re
    c'est parceque tu raisonne pas encore VBA

    je te le dis depuis hier il y a 3 etapes avant de recupérer les infos

    1 page archive avec oldate

    on tombe sur la liste des reunions hipodrome

    2 on cherche le bon hippodrome on recupere le "HREF"(liens)

    on réinjecte ce lien dans IE par le navigate

    on arrive a la page des course s'etant déroulées le jour de oldate dans cet hippodrome
    on cherche le nom du prix par "nomprix" et la encore on récupère le "HREF" (lien)

    on réinjecte ce lien dans ie avec navigate
    on arrive enfin sur l'archive raport de cette course

    et voila

    maintenant essaie de faire la meme chose avec une requete sinon ca dure des plombes

    quand tu en aura marre des beep et des ligne jaunes dans l'editeur VBA demande moi l'exemplaire avec les requetes
    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. #386
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    bon voici comment je fais pour récupérer le lien qui nous intéresse:

  7. #387
    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
    Bon je n'ai pas essayé mais ca resemble beaucoup a mon code IE tout du moins le principe

    mais tu devrais t'associer avec tes amis

    je te dis ca parceque comme ca ala fin ton APP pesera une plombe

    with createobject("html") + with createobject("html") +with createobject("html") heureusement que l'on que 3 page a visiter

    c'est la ou tu n'a pas compris dans mon model IE
    je me sert que d'un IE pas 3

    donc avec une requete c'est pareil

    with createobject("htmlfile")
    .body.innerhtml =recup(blablabla oldate)
    on fouille pour lien hippo
    .body.innerhtml=recupe (balblabla lien hippo)
    on fouille pour lien des course et choix de la course
    .body.innerhtml=recup(blablabla lien de la course )
    on est sur la course
    maintenant on recupere

    end with
    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. #388
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    ok, j'ai enlevé un with create

    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
    Sub starts() '(oldate, hippo, nomprix)
    oldate = "30-07-2015"
        'url = "http://www.zeturf.fr/fr/resultats-et-rapports/?day=2015-07-15"
        url = "http://www.zeturf.fr/fr/resultats-et-rapports/?day=" & (Format(oldate, "yyyy-mm-dd"))
     
         hippo = "DEAUVILLE"
        hippo = UCase(hippo)
     
        With CreateObject("htmlfile")
            .write recupe_html(url)
        Set tdhipo = .getElementsByTagName("td")
            For Each elem In tdhipo: If elem.innerText = hippo Then url = elem.Children(0).href: Exit For
      Next
     ' End With
     
    nomprix = "Prix DE LA PLAINE DE CAEN"
    nomprix = LCase(nomprix)
        'With CreateObject("htmlfile")
            .write recupe_html(url)
            Set tdprix = .getElementsByTagName("a")
            For Each elems In tdprix
     
                If Trim(LCase(elems.innerText)) = Trim(nomprix) Then url2 = elems.href: Exit For ' on a trouvé la bonne course c'est le lien2
            Next
        End With
    End Sub
     
    Public Function recupe_html(url)
        Dim ReQ
        Set ReQ = CreateObject("microsoft.xmlhttp")
        ReQ.Open "POST", url, False
        ReQ.send
        recupe_html = ReQ.responsetext
        Set ReQ = Nothing
    End Function

  9. #389
    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
    attention prevoi le header de la requete sans ca il y a des ratés
    on tombe sur la page du jour

    je te la donne ca t'evitera de chercher
    la mienne
    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
    Function reponseREq(url)
        Set req = CreateObject("microsoft.xmlhttp")
        req.Open "POST", url, False
        req.SetRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
        req.SetRequestHeader "Accept-Language", "fr-FR"
        req.SetRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
        req.SetRequestHeader "Accept-Encoding", "gzip, deflate"
        req.SetRequestHeader "Host", "www.zeturf.fr"
        ' req.SetRequestHeader "If-Modified-Since", "Fri, 31 Jul 2015 09:39:24 GMT"
        req.SetRequestHeader "DNT", "1"
        req.SetRequestHeader "Connection", "Keep - Alive"
        req.send
        reponseREq = req.responsetext
        Set req = Nothing
    End Function
    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. #390
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    J'ai bien vu tu utilises 2 sorte de requêtes, depuis que l'on communique
    1 sous cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim ReQ
        Set ReQ = CreateObject("microsoft.xmlhttp")
        ReQ.Open "POST", url, False
        ReQ.send
        recupe_html = ReQ.responsetext
        Set ReQ = Nothing
    et l'autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set req = CreateObject("microsoft.xmlhttp")
        req.Open "POST", url, False
        req.SetRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
        req.SetRequestHeader "Accept-Language", "fr-FR"
        req.SetRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
        req.SetRequestHeader "Accept-Encoding", "gzip, deflate"
        req.SetRequestHeader "Host", "www.zeturf.fr"
        ' req.SetRequestHeader "If-Modified-Since", "Fri, 31 Jul 2015 09:39:24 GMT"
        req.SetRequestHeader "DNT", "1"
        req.SetRequestHeader "Connection", "Keep - Alive"
        req.send
        reponseREq = req.responsetext
        Set req = Nothing
    Mais j'ai du mal à comprendre pourquoi un mais par l'autre....????

  11. #391
    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
    re
    bon Ok

    alors il y a 2 methodes
    1 "get"
    2 "POST"

    certains site acepte l'un ou l'autre

    la methode "get" a un petit defaut qui peut avoir son importance
    elle peut aller chercher les données dans le dossier temoraire de IE se qui peut poser un probleme si on a des pages qui semettent a jours régulierement
    on risque donc d'avoir des données érronées

    2 la methode post elle va chercher les données dans la page web ( je préfere) bien sur quand le site l'autorise


    ensuite le header

    de plus en plus les site exige des requete conformes
    porquoi? et bien parceque dans le header(parametre de la requete ) il y a les information necessaire au bon rendu de la page

    exemple pour le useragent ie est compatible et mozilla aussi ( rendu avec fichier STYLE.css different selon)

    pour le accept-language la aussi le rendu te sera livré en fonction de cet argument

    pour le host ou referer c'est le ponit mere de la page en gros la maman de tout les fichiers qui servent a afficher la page web (fichier .JS,.CSS,JSON,etc.......)

    donc résultat tu fait une requete comme si c'estait la page qui le faisait en cliquand sur un (lien,bouton,etc...)


    en gros j'ai copié la requete comme celle d'origine
    je t'expliquerait plus tard coment on fait pour savoir ce genre de chose avec l'inpecteur IE "F12"

    voila
    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

  12. #392
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    Merci pour cette éclaircissement, je vois mieux la diff entre les deux, j'avais bien vu "get" et "post" mais la subtilité non....merci

    Bon j'ai un souci avec
    après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .write recupe_html(url)
    il revient ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set tdhipo = .getElementsByTagName("td")
    Mais avant le point de getelem, il me manque quelque chose, j'imagine que ça doit correspondre à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reponseREq = ReQ.responseText
    ?????

    si j'inclut la funtion directement dans la sub, ça fonctionne pour le premier lien, mais pas le 2ème
    je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .write recupe_html(url)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .write ReQ.responseText
    pour le 1er lien, mais pour le deuxième plouffff

  13. #393
    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
    tion instantanére
    non devant .getelementsbytagname("td") il n'y a rien
    pourquoi?

    parceque on est dans un (with/end with)

    3 facon:

    facon declaration tardive(late binding)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim thedoc as object
    set thedoc=createobject("htmlfile")
    thedoc.write recup(url)
    set mestd=thedoc.getelementsbytagname("td")
    2

    sans declaration (sera detruit en sortie de sub ou fonction)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with createobject("htmlfile")
    .write recup(url)
    set mestd=.getelementsbytagname("td")
    end with
    et la 3 eme (exige d'activer la reference microsoft hml element)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim thedoc as new htmldocument
     
    blablablabla
    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. #394
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    oui c vrai on est dans un with-endwith donc ok...

    Mais pourquoi avec la function ça ne fonctionne pas
    Alors que si je mets la function dans la sub, ça fonctionne pour le 1er lien et non pour le 2ème
    bien evidemment pour que cela fonctionne dans la sub, il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .write recupe_html(url)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .write ReQ.responseText
    seb

  15. #395
    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
    re
    c'est la ou tu fait erreur
    tu confond la sub et la fonction

    la on est dans la sub
    etape1
    with machin
    .write recup(url) 'c'est la 1 ere requete celle avec oldate formatée
    on fouille lcodehtml on trouve l'hippodrome dans cette element il y a un lien(HREF) on le recupere
    on réécrit le fauxdocument avec le codehtml retourné par la recup
    donc a nouveau
    .write recup(lien2) lien 2 et le lien de toutes les courses donné par la 1 ere recup
    et ainsi de suite jusqu'a arriver la ou on veux

    et dans la fonction c'est toujours
    req.open"POST",url,false

    url prend la valeur de ce que lui envoie la sub a chaque fois

    tu te mela
    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. #396
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    .write recup(url) 'c'est la 1 ere requete celle avec oldate formatée
    ok, pour ça, il va dans la function fait son truc et revient après .write recup(url)

    Mais c là qu'il ne fait rien, comment récupérer ReQ.reponseText de la function dans la sub pour qu'il cherche avec .getElementsByTagName("td")

    je vais t'abandonner un peu, j'ai la marmaille à aller chercher,
    a toute a l'heure

    seb

  17. #397
    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
    bon je vois que ca y est tu capote on est arrivé au bout de ta résistance aujourd'hui

    le get..... cherxhe dans le fauxdoc pas dans .responsetext
    le req.responsetext est du texte (string) pas le body du document

    tu confond tout
    bon j'ai repris la mienne et je l'ai largement commentée etape par étape
    des lignes d'etoiles séparent les etapes pour une lisibilité plus facile


    j'en ai meme fait une fonction de la sub

    et la requete aussi est une fonction (ca va pas t'aider ca hein!!!!)

    si normalement tu va vite comprendre

    ferme tout tes fichiers :inspire ,ouvre un nouveau et met un module
    met ce code
    lance un test apres l'autre
    tu devrais recevoir un message avec les gains dans meme ordre que le sheets archive
    on s'occupera apres des split pour insérer dans les cellules
    mais la tu devrais mieux comprendre
    j'en ai mal aux doigts a force de taper des commentaires

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    Function reponseREq(url)
        Set req = CreateObject("microsoft.xmlhttp")
        req.Open "POST", url, False
        req.SetRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
        req.SetRequestHeader "Accept-Language", "fr-FR"
        req.SetRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
        req.SetRequestHeader "Accept-Encoding", "gzip, deflate"
        req.SetRequestHeader "Host", "www.zeturf.fr"
        req.SetRequestHeader "If-Modified-Since", "Fri, 31 Jul 2015 09:39:24 GMT"
        req.SetRequestHeader "DNT", "1"
        req.SetRequestHeader "Connection", "Keep - Alive"
        req.send
        reponseREq = req.responsetext
        Set req = Nothing
    End Function
     
    ' exemple http://www.zeturf.fr/fr/resultats-et-rapports/?day=2015-07-28
    Function raportzeturf(oldate, hippo, nomprix)
        Dim req, url
        hippo = UCase(hippo): nomprix = LCase(nomprix): oldate = Format(oldate, "yyyy-mm-dd")
        'on va vers les hippodromes
        url = "http://www.zeturf.fr/fr/resultats-et-rapports/?day=" & oldate    ' &2015-07-28
          '************************************************************************************************************************************
             'on va chercher le code html de la page archive generale oldate
               Set document = CreateObject("htmlfile")
        document.body.innerhtml = reponseREq(url)
      '************************************************************************************************************************************
     
        'on cherche le bon hippodrome qui nous donne le lien des course de ce jour
        Set tdhipo = document.getelementsbytagname("td")
        For Each elem In tdhipo
            If UCase(elem.innertext) = hippo Then lien1 = elem.Children(0).href: Exit For   'on a trouvé l'hippodrome !!!!!!!!!
        Next
      '************************************************************************************************************************************
            'on réécrit le body avec  le codehtml du lien1(courses dans cet hippodrome)
        document.body.innerhtml = reponseREq(lien1) 'la dadans il y a toutes les course de cet hippodrome  ce jour la
        ' on cherche la bonne course
        Set tdprix = document.getelementsbytagname("a")
        For Each elems In tdprix
            If Trim(LCase(elems.innertext)) = Trim(nomprix) Then lien2 = elems.href: Exit For    ' on a trouvé la bonne course!!!!!!!!!!
        Next
    '***************************************************************************************************
    'on réécrit le body avec  le codehtml du lien2( la course recherchée)
        document.body.innerhtml = reponseREq(lien2)
        If document.parentWindow.clipboardData.setData("Text", document.body.innerhtml) Then
            Application.ScreenUpdating = False
            '.parentWindow.clipboardData.clearData "Text"
        End If
        ' A PARTIR DE LA ON PEUT RECUPERER LES TABLE DE GAINS
        'Simple  'ZE couillon, 'Jumelé,'Trio,'Triordre,'ZE 2 sur 4,'ZE 4,'ZE 5,'ZE 234,'ZE 345
        'bigpad center
        For Each elem In document.all
            If elem.classname = "bigpad center" Then
                Select Case elem.Children(0).innertext
                    '************************************************************************************************************************************
                Case "Simple"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then simplo = simplo & td.innertext & ","
                    Next
                    'MsgBox simplo
                    '************************************************************************************************************************************
                Case "ZE couillon"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then ZEC = ZEC & td.innertext & ","
                    Next
                    ' MsgBox ZEC
                    '************************************************************************************************************************************
                Case "Jumelé"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then couplé = couplé & td.innertext & ","
                    Next
                    'MsgBox couplé
                    '************************************************************************************************************************************
                Case "Trio"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then TRIo = TRIo & td.innertext & ","
                    Next
                    'MsgBox TRIo
                    '************************************************************************************************************************************
                Case "Triordre"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then Triordre = Triordre & td.innertext & ","
                    Next
                    'MsgBox Triordre
                    '************************************************************************************************************************************
                    'ZE 2 sur 4
                Case "ZE 2 sur 4"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then ZE24 = ZE24 & td.innertext & ",": Exit For
                    Next
                    'MsgBox ZE24
                    '************************************************************************************************************************************
                    'ZE 5
                Case "ZE 5"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestd = elem.getelementsbytagname("TD")
                    For Each td In mestd
                        If InStr(td.innertext, "€") > 0 Then ZE5 = ZE5 & td.innertext & ","
                    Next
                    'MsgBox ZE5
                    '************************************************************************************************************************************
                    'ZE234
                Case "ZE 234"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestr = elem.getelementsbytagname("TR")
                    For i = 1 To mestr.Length - 1
                        If InStr(mestr(i).Children(2).innertext, "€") > 0 Then ZE234 = ZE234 & mestr(i).Children(2).innertext & ","
                        If InStr(mestr(i).Children(3).innertext, "€") > 0 Then ZE234B = ZE234B & mestr(i).Children(3).innertext & ","
                    Next
                    ZE234 = ZE234 & ZE234B
                    '************************************************************************************************************************************
                Case "ZE 345"
                    'MsgBox elem.getelementsbytagname("table")(0).innertext
                    Set mestr = elem.getelementsbytagname("TR")
                    For i = 1 To mestr.Length - 1
                        If InStr(mestr(i).Children(2).innertext, "€") > 0 Then ZE345 = ZE345 & mestr(i).Children(2).innertext & ","
                        If InStr(mestr(i).Children(3).innertext, "€") > 0 Then ZE345B = ZE345B & mestr(i).Children(3).innertext & ","
                    Next
                    ZE345 = ZE345 & ZE345B
                    '************************************************************************************************************************************
                End Select
            End If
        Next
        raportzeturf = simplo & couplé & ZEC & TRIo & Triordre & ZE4 & ZE234 & ZE345
    End Function
    Sub test()
        MsgBox raportzeturf("28/07/2015", "chantilly", "Prix du Bois Brandin")
    End Sub
    Sub test2()
        MsgBox raportzeturf("30/07/2015", "DEAUVILLE", "Prix DE LA PLAINE DE CAEN")
     
    End Sub
    voila

    quand tu sature n'insiste pas passe a autre chose on a beaucoup de travail encore

    iul me faudrait une course ou il y a jumelé ordre
    car dans ton tablo(archive il y a une cellule "CO" (couplé ordre) que fait on on la supprime ou on s'en servira pour autre chose

    j'ai deja ajouté ZE5,ZE4, ze 2 sur4 ,ZE345 bref je les ai tous sauf ce CO
    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. #398
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    Excellent ton code là, excellent

    Et j'ai vu pourquoi, je n'arrivais pas à faire fonctionner mon bout de code.....Merci pour les commentaires c'est cool

    Sinon pour le CO, on n'en a pas besoin, on supprime....

    Merci

    Ps: AIDE MEMOIRE
    - il faudra qu'on pense à l'indice de forme rangement dans l'ordre croissant
    - pour la mfc penser également à la couleur du 5ème en fonction de l'arrivée car pour le ZE5, il serait intéressant....
    - couleur également sur en fonction de l'arrivée et nos pronos des possibles, rapports que l'on aurait touché
    - simulation en fonction des mises, montantes de chaque jeux

  19. #399
    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
    re
    j'ai modifié c'est bon il y avait encore quelque petites erreur de décalage
    j'ai donc résolu le probleme encreant des cahines vides au cas ou tout les tableaux ne seraient pas presents

    je te donne un apprecu du rendu sur sheets archive
    et toujour en 1 seul clic

    Pièce jointe 184423
    c'est beau non?
    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

  20. #400
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Points : 650
    Points
    650
    Par défaut
    Tres beau même,
    j'ai éditer mon post précédent pour mémoire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete pour fixer taille maximale fichier log ?
    Par julienkim dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/02/2013, 17h03
  2. [Socket][Byte] Probleme d'envoi d'une taille de fichier
    Par Erok dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 12/05/2009, 18h38
  3. [DOS] Obtenir la taille du fichier
    Par Amélie Ladoque dans le forum Windows
    Réponses: 2
    Dernier message: 15/02/2005, 13h33
  4. Taille de fichier
    Par nicolas.pissard dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/11/2003, 17h24
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 10h41

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