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

VBA Discussion :

pilotage internet explorer suite


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    Par défaut pilotage internet explorer suite
    Bonjour,

    Encore besoin d’un petit coup de pouce car depuis votre aide j’ai réussi à adapter les diverses modifications faites pour récupérer les informations...Mais là cette fois je n’y arrive pas...
    En effet malgré tout un tas de tentatives, impossible de passer à la récupération des données de la page2... (il est possible de passer à la page 2 en cliquant sur l’onglet en bas indiquant 2 et ainsi de suite pour toutes les pages)
    Pour visualiser les cours et le code pour la requête il faut aller sur l'adresse suivante : https://www.euronext.com/en/listings/issuers-directory.
    Pour vous remettre à jour Euronext a changé son adresse URL de lancement de la requête et surtout les fichiers contenant les datas sont maintenant de type JS et non plus html mais par contre l’onglet réponse contient bien toujours du html.
    Pour la requête l’URL est maintenant :
    URL = "https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:b9301b0a52857fbdc601dbd15864fdff"
    et l’URL reste toujours la même pour toutes les pages de datas seul iDisplayStart=0 to x varie...comme avant.

    Mais pour le moment impossible d’aller chercher les datas en page2 par la requête!!!
    Voici le code pour tout se remémorrer facilement :

    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 EURONEXT_ALL_EQUITIES()
        'cette sub va interroger le serveur pour récupérer toutes les données du jour à l'instant t
        'Il faut activer la bibliothèque Microsoft WinHTTP Service
        'il faut tout d'abord récupérer le NBPAGES en envoyant une 1° requête pour cela
        Dim i As Long, ARGTS_send As String, Fso As Object
        NBPAGES = 0
        Dim DemandeFichier As Object, URL As String
        Dim FSys As Object, MonFic
        Dim texte As String
        Set DemandeFichier = CreateObject("Microsoft.XMLHTTP")
        URL = "https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:b9301b0a52857fbdc601dbd15864fdff"
        'On génère la 1 ere requête afin d'obtenir les 20  1ere lignes ainsi que le nombre de page
        DemandeFichier.Open "POST", URL, False
        DemandeFichier.setRequestHeader "Accept", "application/json, text/javascript, */*"
        DemandeFichier.setRequestHeader "Referer", ":https://www.euronext.com/en/equities/directory"
        DemandeFichier.setRequestHeader "Host", "www.euronext.com"
        DemandeFichier.send "sEcho=null&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true"
        NBPAGES = Round(Val(Split(Split(DemandeFichier.responseText, "iTotalRecords"":")(1), ",")(0)) / 20)
        MsgBox ("Nombre de pages " & NBPAGES)
        'suppression\création du répertoire response pour les fichiers DemandeFichier.responseText
        On Error Resume Next
        Kill "C:\Users\...\response\*.*"
        RmDir "C:\Users\...\response"
        MkDir "C:\Users\...\response"
        On Error GoTo 0
     
    creationvbs2
     
        requetevbs = "C:\Users\...\requeteallequities.vbs"
        SC = """" & requetevbs & """ "
        For i = 0 To NBPAGES
            ARGsending = i * 20 '=WScript.Arguments(1)
            Set sh = CreateObject("WScript.Shell")
            sh.Run SC & URL & " " & ARGsending
        Next
    End Sub
     
    Sub creationvbs2()
        Dim code As String, sending As String, Parser As String, FSys As Object, MonFic As Object
        code = code & vbCrLf & "Set DemandeFichier = CreateObject(""Microsoft.XMLHTTP"")"
        code = code & vbCrLf & "DemandeFichier.Open ""POST" & """, WScript.Arguments(0), False" & vbCrLf
     
        code = code & vbCrLf & "DemandeFichier.setRequestHeader ""Accept"", ""application/json, text/javascript, */*""" & vbCrLf & _
                  "DemandeFichier.setRequestHeader ""Host"", ""euronext.com""" & vbCrLf & _
                  "DemandeFichier.setRequestHeader ""Referer"", ""https://www.euronext.com/fr/equities-directory"""
     
       ARGTS_send = """sEcho=null&iColumns=7&sColumns=&iDisplayStart=""" & "& WScript.Arguments(1) & " & """&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"""
     
      code = code & vbCrLf & "DemandeFichier.send " & ARGTS_send
      code = code & vbCrLf & "str_demande_fich = DemandeFichier.responseText"
      code = code & vbCrLf & "MsgBox(""iDisplayStart= "" & WScript.Arguments(1))" 'pour visualiser iDisplayStart oui monte de 20 en 20
      code = code & vbCrLf & "MsgBox(""DemandeFichier.responseText = "" & str_demande_fich)" 'pour visualiser le fichier html de réponse du
      'serveur => problème c'est toujours le même, soit la 1° page
     
          With ThisWorkbook
            'On copie le code dans un fichier
            Set FSys = CreateObject("Scripting.FileSystemObject")
            Set MonFic = FSys.CreateTextFile("C:\Users\...\requeteallequities" & ".vbs")
            With MonFic    'Pour écrire dans le fichier texte
                .write code
            End With
        End With
    End Sub

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    A priori rien de particulier au niveau des requêtes serveur.
    Le seul doute c'est au niveau des "events" lié au numéro de page sur la page du site. Il y a deux events en plus du Click, la page se sert peut-être de ses deux events pour repérer les bots. Mais si c'est le cas, je ne comprends pas comment est transmise l'info au serveur. Il n'y a pas d'autre requête que celle visant à demander les datas au serveur et je ne voit rien dans cette dernière qui viserait à indiquer au server que je suis humain.

    Une remarque tout de même, sur le site, si on relance un requête en modifiant le paramètre iDisplayStart, les données ne sont pas modifiées sur la page web... mais la réponse contient bien les bonnes informations (celles qu'on lui a demandées).

    Il faudrait peut-être refaire un code qui exécute la requête à partir du code VBA plutôt que de passer par le VBS, il serait plus aisé de faire des essai et de contrôler le contenu des variables.

    ++
    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

  3. #3
    Membre éclairé
    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
    Par défaut re
    Merci de ta réponse si rapide

    Oh oui j'ai fait des essais mais rien n'y fait cette fois...ou alors je n'ai pas tout compris de tes anciennes explications de l'époque

    Tu peux tester le code mis en post#1 mais rien à faire c'est toujours la 1° page qui revient!!!

    Une remarque tout de même, sur le site, si on relance une requête en modifiant le paramètre iDisplayStart, les données ne sont pas modifiées sur la page web... mais la réponse contient bien les bonnes informations (celles qu'on lui a demandées).
    C'est ce point qui me pose problème, je n'arrive pas à envoyer de requête pour récupérer les informations la page 2 même en mettant iDisplayStart=20 aussi bien en VBS, qu'en VBA...c'est toujours les données de la 1° page qui reviennent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DemandeFichier.send "sEcho=null&iColumns=7&sColumns=&iDisplayStart=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"
    sur cette ligne j'ai fait des tests sEcho=1, sEcho=2, sEcho=5 ca compte juste le nombre de requêtes envoyées au serveur

    Oui les events perturbent peut être mais comme toi je ne vois pas comment, ni pourquoi...et le code VBS jusqu'à présent nettement plus pratique que du VBA...donc si possible je voudrais rester avec lui...et surtout éviter de devoir valider page par page cliquant à chaque fois (car ca serait surement interminable)!!!

    Où est ce que je fais une erreur stp?

  4. #4
    Membre éclairé
    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
    Par défaut
    Bonjour,

    Pour le moment retour en arrière en cliquant page par page...je ne trouve pas de moyen pour lancer directement la requête sur la page2 même en VBA (c’est toujours les données de la page1 qui reviennent !!!)
    Les données de la page2 ne semblent disponible qu’après clic sur le bouton de la page2...Tu as réussi à charger directement la page2 sans cliquer sur le bouton grâce à iDisplayStart=20 ?
    Comment as-tu fait stp

    les events à contourner sont bien ceux là ?
    Nom : euronext_tc_page_suivante.jpg
Affichages : 450
Taille : 273,3 Ko

    Merci de ton aide, en plus depuis le temps je t’avoue que j’espèrais contourner cela en 2 temps 3 mouvements et bien pas du tout...

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Pour les sEcho, j'avais aussi gratté de ce coté et j'en étais arrivé à la même conclusion.

    Citation Envoyé par itwoo Voir le message
    Tu as réussi à charger directement la page2 sans cliquer sur le bouton grâce à iDisplayStart=20 ?
    Comment as-tu fait stp
    Dans tous les cas ça ne résoudra pas ton problème mais la manip est la suivante
    Nom : Renvoyer (Copier).png
Affichages : 424
Taille : 85,0 Ko

    Ensuite je modifie la requête

    Nom : Modifier (Copier).png
Affichages : 417
Taille : 56,2 Ko
    et je la retourne au serveur.
    Une nouvelle ligne est crée dans réseau et si tu vas dans l'onglet réponse, les données correspondent bien au informations demandées (ici de la page 3).
    Malgré tout, le contenu de la page lui ne change pas, mais les données sont les bonnes.

    Nom : Onblet réponse (Copier).png
Affichages : 436
Taille : 118,5 Ko

    S'agissant du code du porte #1, j'ai modifié deux trois lignes pour qu'il "fonctionne" (sans pour autant régler ton problème, juste pour pouvoir faire des essais )
    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
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    Option Explicit
     
    Sub EURONEXT_ALL_EQUITIES()
        'cette sub va interroger le serveur pour récupérer toutes les données du jour à l'instant t
        'Il faut activer la bibliothèque Microsoft WinHTTP Service
        'il faut tout d'abord récupérer le NBPAGES en envoyant une 1° requête pour cela
        Dim i As Long, ARGTS_send As String, Fso As Object
        Dim NBPAGES As Integer, RequeteVBS As String, SC As String, ARGsending As Integer, Sh As Object
        Dim DemandeFichier As Object, URL As String
        Dim FSys As Object, MonFic
        Dim texte As String
     
        NBPAGES = 0
        Set DemandeFichier = CreateObject("Microsoft.XMLHTTP")
        URL = "https://www.euronext.com/pd/stocks/data?formKey=nyx_pd_filter_values:b9301b0a52857fbdc601dbd15864fdff"
        'On génère la 1 ere requête afin d'obtenir les 20  1ere lignes ainsi que le nombre de page
        DemandeFichier.Open "POST", URL, False
        DemandeFichier.setRequestHeader "Accept", "application/json, text/javascript, */*"
        DemandeFichier.setRequestHeader "Referer", ":https://www.euronext.com/en/equities/directory"
        DemandeFichier.setRequestHeader "Host", "www.euronext.com"
        DemandeFichier.send "sEcho=null&iColumns=7&sColumns=&iDisplayStart=0&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true"
        NBPAGES = Round(Val(Split(Split(DemandeFichier.responseText, "iTotalRecords"":")(1), ",")(0)) / 20)
        'MsgBox ("Nombre de pages " & NBPAGES)
        'suppression\création du répertoire response pour les fichiers DemandeFichier.responseText
        On Error Resume Next
        'Kill ThisWorkbook.Path & "\response\*.*"
        'RmDir ThisWorkbook.Path & "\response"
        'MkDir ThisWorkbook.Path & "\response"
        On Error GoTo 0
     
        creationvbs2
        'CreationVBS1
     
        RequeteVBS = ThisWorkbook.Path & "\requeteallequities.vbs"
        SC = """" & RequeteVBS & """ "
        For i = 0 To NBPAGES
            ARGsending = i * 20 '=WScript.Arguments(1)
            Set Sh = CreateObject("WScript.Shell")
            Sh.Run SC & URL & " " & ARGsending
        Next
    End Sub
     
    Sub creationvbs2()
        Dim code As String, sending As String, Parser As String, FSys As Object, MonFic As Object
        Dim ARGTS_send As String
        code = code & vbCrLf & "Set DemandeFichier = CreateObject(""Microsoft.XMLHTTP"")"
        code = code & vbCrLf & "DemandeFichier.Open ""POST" & """, WScript.Arguments(0), False" & vbCrLf
     
        code = code & vbCrLf & "DemandeFichier.setRequestHeader ""Accept"", ""application/json, text/javascript, */*""" & vbCrLf & _
                  "DemandeFichier.setRequestHeader ""Host"", ""euronext.com""" & vbCrLf & _
                  "DemandeFichier.setRequestHeader ""Referer"", ""https://www.euronext.com/fr/equities-directory"""
     
       ARGTS_send = """sEcho=null&iColumns=7&sColumns=&iDisplayStart=""" & "& WScript.Arguments(1) & " & """&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"""
      code = code & vbCrLf & "DemandeFichier.send " & ARGTS_send
      code = code & vbCrLf & "str_demande_fich = DemandeFichier.responseText"
      code = code & vbCrLf & "MsgBox(""iDisplayStart= "" & WScript.Arguments(1))" 'pour visualiser iDisplayStart oui monte de 20 en 20
      code = code & vbCrLf & "MsgBox(""DemandeFichier.responseText = "" & str_demande_fich)" 'pour visualiser le fichier html de réponse du
      'serveur => problème c'est toujours le même, soit la 1° page
     
        'Le with suivant est inutile
          With ThisWorkbook
            'On copie le code dans un fichier
            Set FSys = CreateObject("Scripting.FileSystemObject")
            Set MonFic = FSys.CreateTextFile(ThisWorkbook.Path & "\requeteallequities" & ".vbs")
            With MonFic    'Pour écrire dans le fichier texte
                .write code
            End With
        End With
    End Sub
     
    '///////////////////////////////////////////////////////////////////////////////////////////////////////////
    '                                                   CREATION DU VBS UNIQUE
    '///////////////////////////////////////////////////////////////////////////////////////////////////////////
     
     
    Sub CreationVBS1()
    'cette sub va écrire le texte des requêtes vbs (en fait toutes les requêtes sont écrites dans un seul fichier *.vbs
     
        Dim code As String, sending As String, Parser As String, FSys As Object, MonFic As Object
        Dim ARGTS_send As String, Enreg As String
     
        code = "dim tablo,tablo2(20,7)" & vbCrLf
        code = code & "do" & vbCrLf
        code = code & "b=b+1" 'en place du rupteur b qui quitte si b=10
        code = code & vbCrLf & "Set DemandeFichier = CreateObject(""Microsoft.XMLHTTP"")"
        code = code & vbCrLf & "DemandeFichier.Open ""POST" & """, WScript.Arguments(0), False" & vbCrLf
     
        code = code & vbCrLf & "DemandeFichier.setRequestHeader ""Accept"", ""application/json, text/javascript, */*""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Accept-Encoding"", ""gzip , deflate""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Content-Type"", ""application/x-www-form-urlencoded; charset=UTF-8""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Content-Length"", ""231""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Cache-Control"", ""no-cache""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Accept-Language"", ""fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Connection"", ""keep-alive""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Host"", ""europeanequities.nyx.com""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Pragma"", ""no-cache""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""Referer"", ""https://europeanequities.nyx.com/fr/equities-directory""" & vbCrLf & _
                 "DemandeFichier.setRequestHeader ""User-Agent"", ""Mozilla/5.0 (Windows NT 6.0; rv:29.0) Gecko/20100101 Firefox/29.0""" & vbCrLf
     
        ARGTS_send = """sEcho=5&iColumns=7&sColumns=&iDisplayStart=""" & "& WScript.Arguments(1) & " & """&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"""
     
        code = code & vbCrLf & "DemandeFichier.send " & ARGTS_send
     
        'ici ajout de if status = 200 pour être sûr que le script revient bien
       code = code & vbCrLf & "If DemandeFichier.status <>200 then MsgBox(""Pas de retour de connexion""):z =100 : MsgBox(""Quit n° "" & z):WScript.Quit 100"
       code = code & vbCrLf & "str_demande_fich = DemandeFichier.responseText"
     
       'test pour le dernier response vide
        'si la réponse à cette forme il s'agit du fichier de queue qui est vide...donc inutile de le garder oui mais
        'seulement dans ce cas il y a la perte du timer car dans Feuil1 il faut If comptechangement = NBPAGES + 1 Then
       code = code & vbCrLf & "if str_demande_fich= ""{""""sEcho"""":""""5"""",""""iTotalRecords"""":0,""""iTotalDisplayRecords"""":0,""""aaData"""":[],""""error"""":false}"" then "
        code = code & vbCrLf & "GetObject(, ""Excel.Application"").Workbooks(""" & ThisWorkbook.Name & """).Worksheets(1).Range(""B"" & WScript.Arguments(2)) = """""
        'ici mise en retour d'un GetObject pour déclencher le compteur et donc le Timer, seulement cela va déclencher plage qui va déclencher cadre
        'donc affichage d'une cellule violette vide...mais pour éviter cela inscription en colonne B (=colonne 2) et mise en
        'code Feuil1 if Target.Column <>2 pour déclencehr le plage comme cela il n'y a plus de fond violet intempestif
        code = code & vbCrLf & "Ag= true"
        code = code & vbCrLf & "End If"
     
       'par précaution mettre un rupteur pour b par exemple 10
         code = code & vbCrLf & "If b>9 then"
     
         'si erreur elle est signalée par un rapport d'erreur en colonne i
         code = code & vbCrLf & "GetObject(, ""Excel.Application"").Workbooks(""" & ThisWorkbook.Name & """).Worksheets(1).Range(""I""&(WScript.Arguments(1)/20)+6 ).Value=""page ""  & (WScript.Arguments(1)/20)+1 &"" = "" & b & ""  essai"""
         code = code & vbCrLf & "GetObject(, ""Excel.Application"").Workbooks(""" & ThisWorkbook.Name & """).Worksheets(1).Range(""A"" & WScript.Arguments(2)).Value = WScript.Arguments(1)/20"
         'pour afficher le n° du script défectueux dans la cellule en colonne A
         'Par contre lors de la sortie par WScript.Quit le théme du fond d'écran n'est pas perdu puisqu'il y a bien GetObject qui va déclencher le plage dans la Feuil1
         code = code & vbCrLf & "WScript.Quit 1" 'WScript.Quit 1 marche mais 1 n'apaprait pas
         code = code & vbCrLf & "Exit Do" 'le WScript.Quit étant actif exit do ne sert plus à rien
         code = code & vbCrLf & "End If"
     
         'ici vérification avec la condition sur code
         code = code & vbCrLf & "Eg = instr(str_demande_fich, """"""error"""":true"")>0" '=> ""error"":true
         'code = code & vbCrLf & "Eg = instr(str_demande_fich, ""error"""":true}"")>0" '=> error"":true} version Pat
         code = code & vbCrLf & "Loop While instr(str_demande_fich, """"""error"""":true"")>0"
      'ici les syntaxes pour echo:true différent mais cela dit elle ne sont pas contradictoire il va falloir vérifier si elles
      'sont justes en regardant si dans les cellules du tableau de rapport il y a eu parfois des relances => valeur de b <> 1  'dans le tableau mais pas possible pour le moment car plus d'erreur de relance de retours des scripts!!!
     
         'ici ce message ne s'affiche plus si b=10 le Wscript.Quit a fait quitter le script=>
         code = code & vbCrLf & "If b=10 then MsgBox(""Script non quitté WScript.Quit 1 défectueux car pourtant instr= "" & Eg)"
     
            code = code & vbCrLf & "resultat = Replace(DemandeFichier.responseText, ""["", vbCrLf)" & vbCrLf & _
                 "tablo = Split(resultat, vbCrLf)" & vbCrLf & "Z = 0" & vbCrLf & _
                 "For i = 2 To UBound(tablo)" & vbCrLf & _
                 "tablo2(Z, 0) = Split(Split(tablo(i), ""\u003e"")(1), ""\"")(0)" & vbCrLf & _
                 "reponse = reponse & tablo2(Z, 0)" & vbCrLf & _
                 "tablo(i) = Split(Split(tablo(i), ""/div\u003e"""","""""")(1), ""]"")(0)" & vbCrLf & _
                 "tablo2(Z, 1) = Split(tablo(i), """""","""""")(0)" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 1)" & vbCrLf & _
                 "tablo2(Z, 2) = Split(tablo(i), """""","""""")(1)" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 2)" & vbCrLf & _
                 "tablo2(Z, 3) = Split(tablo(i), """""","""""")(2)" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 3)" & vbCrLf & _
                 "tablo2(Z, 4) = Replace(Split(tablo(i), """""","""""")(3),"","",""."")" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 4)" & vbCrLf & _
                 "tablo2(Z, 6) = Replace(Split(tablo(i), """""","""""")(5), Chr(34),"""")" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 6)" & vbCrLf & _
                 "On Error Resume Next" & vbCrLf & _
                 "tablo2(Z, 5) = Split(Split(tablo(i), ""\u003e"")(1), ""\"")(0)" & vbCrLf & _
                 "reponse = reponse & chr(9) & tablo2(Z, 5) & vbcrlf" & vbCrLf & _
                 "Err.Clear" & vbCrLf & _
                 "Z = Z + 1" & vbCrLf & _
                 "Next"
     
         code = code & vbCrLf & "reponse = reponse & vbcrlf & str_demande_fich" 'ici reponse à toutes les datas de tablo2
         '+ demandefichier.responsetext
     
         code = code & vbCrLf & "GetObject(, ""Excel.Application"").Workbooks(""" & ThisWorkbook.Name & """).Worksheets(1).Range(""I""&(WScript.Arguments(1)/20)+6 ).Value=""page ""  & (WScript.Arguments(1)/20)+1 &"" = "" & b & ""  essai"""
        'pour l'affichage du tableau de rapport du nombre de relance
        'ici introduction de la condition Ag=False (pour ne pas afficher si il existe le fichier de queue des data
        code = code & vbCrLf & "If Ag = False Then"
        code = code & vbCrLf & "GetObject(, ""Excel.Application"").Workbooks(""" & ThisWorkbook.Name & """).Worksheets(1).Range(""A"" & WScript.Arguments(2)).Resize(UBound(tablo2), 7) = tablo2"
        'pour l'affichage des datas suite au retour des scripts
        code = code & vbCrLf & "End If"
     
         'pour enregistrer sous fichier response au format texte le retour des datas
          Enreg = "Set FSys = CreateObject(""Scripting.FileSystemObject"")"
         Enreg = Enreg & vbCrLf & "Set MonFic = FSys.CreateTextFile("".\response"" & WScript.Arguments(1)/20 & "".txt"")"
         Enreg = Enreg & vbCrLf & "With MonFic" & vbCrLf & ".write reponse" & vbCrLf & "End With"
     
        code = code & vbCrLf & Enreg
     
          With ThisWorkbook
            'On copie le code dans un fichier
            Set FSys = CreateObject("Scripting.FileSystemObject")
            Set MonFic = FSys.CreateTextFile(.Path & "\requeteallequities" & ".vbs")
            With MonFic    'Pour écrire dans le fichier texte
                .write code
            End With
        End With
    End Sub


    ++
    Qwaz
    Images attachées Images attachées  

    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

  6. #6
    Membre éclairé
    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
    Par défaut re
    Bonjour,

    Désolé du retard..je regarde tout ça sous peu et te dis...mais si je comprends bien on ne peut plus charger directement toutes les pages par requêtes successives comme avant mais juste une par une?

Discussions similaires

  1. Pilotage Internet Explorer
    Par itwoo dans le forum Macros et VBA Excel
    Réponses: 333
    Dernier message: 13/11/2015, 10h55
  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, 15h08
  3. [XL-2003] Pilotage Internet Explorer
    Par clarinet dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 25/03/2013, 19h13
  4. Pilotage Internet Explorer
    Par bolof dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/09/2012, 21h25
  5. [OLE] Pilotage internet explorer
    Par yaclo dans le forum MFC
    Réponses: 4
    Dernier message: 22/03/2005, 20h03

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