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

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

Macros et VBA Excel Discussion :

Pilotage Internet Explorer


Sujet :

Macros et VBA Excel

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

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

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

    Du calme Patrick, Itwoo souhaite peut-être juste comprendre pour pouvoir l'appliquer autre part ou simplement pour ses connaissances personnelles.

    Alors en ce moment j'utilise l'inspecteur de FireFox, lorsqu'une valeur change, celle-ci est surlignée temporairement en jaune, ce qui facilite la recherche. Mais Chrome et IE mettent à jour également les valeurs en temps réel.
    Dans la pratique, pour sélectionné l'objet en question, j'ouvre l'inspecteur et je lance le chargement sur 10 ans, comme ça, ça me laisse le temps de sélectionner le bouton et de cliquer sur l'élément qui m’intéresse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p id="ajaxloader" class="ajax_loading_wrap" style="display: none;">    <img width="32" height="32" src="http://content.nasdaq.com/images/ajax-loader-2.gif">
     
     
     
    </p>
    Ensuite tu peux tester plusieurs fois, en simplement relançant un chargement et en observant le comportement des variables.

    Pour répondre à ta 2ème question, le early bindings n'a rien à voir avec ton problème car ici tu ne déclares aucune variable object, j'explique au début de mon tutoriel le early et late bindings.
    Pour l'utilisation de Sheets(3), je préfère éviter ce type d'appellation pour nommer un onglet, je préfère utiliser le CodeName de cet onglet, c'est à dire sont nom sous VBa, tu peux le modifier ici
    Nom : 2014-03-18_173916.jpg
Affichages : 276
Taille : 135,2 Ko
    Plusieurs avantages,
    • Si au cours de la macro, tu ouvres ou changes de fenêtre Excel, modifiant le classeur actif, cela évite que la macro ne se mettent à utiliser se classeur actif comme référence... en effet Sheets(3) est compris par VBA comme étant ClasseurActif.Sheets(3), alors que si tu utilises le CodeName, il fera toujours référence au même onglet du même classeur et pas d'un autre classeur.
    • Si l'utilisateur change l'onglet de place, Sheet(3) représentera le mauvais onglet = catastrophe
    • La diminution du code, il est plus simple d'écrire MonOnglet (étant CodeName donné à un onglet), plutôt que de le nommer "en entier" ThisWorkBook.Sheets(3).


    Après je n'ai pas trop compris le problème, si tu utilises With, l’auto-complétion ne fonctionne pas toujours en effet, quand j'en ai besoin, je note simplement provisoirement l'objet de départ. Le problème est d'autant plus pénible avec Sheets qui lui ne s'autocompléte pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub teste()
        Sheets("Feuil1").Activate
        Feuil1.Activate
    End Sub
    Si tu places 2 espions, un sur Sheets("Feuil1") et un sur Feuil1, tu verras qu'ils sont de types différents, Sheets(...) est un objet interprété comme étant un "sheet". Alors que Feuil1 est une classe Feuil1 dérivée de la classe Worksheet et est donc un Sheet, aucune interprétation de VBa ici. Je ne sais pas si je suis claire ni si c'est la vérité vrai mais c'est comme celà que j'interprète ce problème.
    J'en reviens donc à l'utilisation du CodeName

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

  2. #142
    Inactif  

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

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour qwazerty je le comprends bien mais ca peut etre le sujet d'un autre post ((listbox et listindex)avec me ou with et le point pourquoi?)surtout que pour des raisons de taille de fichier j'ai supprimer tout controls activx dans le fichier et donc plus de listbox la liste est maintenant un commandbars popup les boutons sont des cellulesenfin ce qui est important ce sont les deux modules (NASDAQ ET EURONEXT)qui sont les moteur du fichier pour des raisons esthétique j'applique un zoom sur une plage dans les sheets("acceuil") en fonction de l'ecran ca se place tout seul récupérez le et dites moi ce que vous en pensez maintenant il m'est venu une idéemais j'ai une question est que les données Euronext peuvent changer dans les dates passéesi non alors pourquoi ne pas charger simplement avec date(today) et la dernière date en sheets euro +1jour et garder les donnée dans le sheets la macro irais beaucoup plus vitemais ca itwoo peut se manifester pour me dire si c'est une idée qui lui conviendraitune question pour qwazerty:la fonction native getcelementsbyclassname de la librairie IE ne fonctionne pas avec IE 11 tu etais au courant ???
    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

  3. #143
    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,

    Merci pour ton explication Qwaz, c'est ok avec Firefox.
    Merci a tous les 2 pour tout, je suis bien conscient du temps et du travail fourni par vous 2 et vous en remercie, tu le sais bien Patrick...mais j'essaie de comprendre un minimum (et pas simplement de suivre) et surtout je n'ai pas vos connaissances (et bien que je lise les tutos il y a des points qui m'échappent, surtout que ca me prend des heures!!!)
    Pour ta derniére version elle marche. (il y a juste inversion dans l'affichage cellule excel sur la date du mois et du jour exemple 03/10/09 au lieu de 10/03/09 mais ca je vais y arriver à le corriger normalement, le 13/03/2009 s'affiche correctement lui)
    Pour ta question il y a bien mise à jour rétroactive des dates par exemple le cours peut être divisé par 2 (par exemple si Air Liquide décide le 25 mai 2014 de diviser son titre par 2 alors toutes les anciennes data antérieures seront divisées par 2)...donc tu ne peux pas garder en sheet les dates passées à moins de les mettre à jour...seulement pour cela ca devient trop compliqué car seul euronext, nasdaq et quelques services spécialisés connaissent toutes les mises à jour effectuées pour chaque valeur chaque jour...
    A bientôt

  4. #144
    Inactif  

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

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    Bonjour excuse moi pour ma petite crise ok pour les donnée passée on laisse tomber alors c'était pour gagner encore quelque secondes l'ors de la mise a jour c'est tout cela dit moins de 7 secondes pour Nasdaq et moins de 10 pour Euronext sur une duré d'environ 9 ans
    mise a part certaines mises en forme au niveau des format date ,on peut estimer le sujet résolu
    a mon avis cette dernière version sera stable pendant encore pas mal de temps je crois

    pour qwazerty: sait tu comment on récupère le src d'un élément sans travailler en string mais avec les fonction native de la librairie IE je suis en train de travailler sur la nouvelle version de mon progTV et il me reste a récupérer le src de la vignette film et je le trouve bien par sa class "prog_image"

    une idée comme ca ou on ouvre un autre post ?

    EDIT:c'est bon j'ai trouvé c'etait un sous enfant Href donnait un lien et src donnait le lien de l'image sur le même élément
    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

  5. #145
    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,

    Oui aucun probléme...merci pour tout en tout cas...
    C'est rapide en effet et ca semble tout temps tout terrain, je vais tester tout cela sur plusieurs valeurs et dans la durée.
    Et aussi analyser votre code pour le comprendre (en ce moment je suis pas mal chargé, mais ca va venir)
    A bientôt

  6. #146
    Inactif  

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

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

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

    j'avais oublié de te dire que les dates chez moi sont au bon format mais en fait j'avais mis toutes les colonnes utilisées au format texte
    pour qu'il n'y ai pas de modification sur la retranscription sur le sheet

    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

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

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

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

    ok on en reparlera un peu plus tard (certaines dates s'inversent c'est du au format, je verrai ca plus tard c'est du petit détail ), ici pour les tests maintenant ca semble passer sans s'arrêter sur le .Paste...
    En priorité test et test, Il me faut encore du temps pour tout tester, vérifier je pense pas finir avant fin avril.
    En ce moment décodage petit à petit de votre code et jusquà présent tout va bien, et il fait vraiment pro le code.
    A bientôt pour quelques questions
    Bonne semaine

  8. #148
    Inactif  

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

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

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

    ".paste"
    comme je ne vois pas de quoi tu parle ca concerne les versions avec l'Object IE pour ton projet c'est sans intérêts

    je vais attendre que tu arrive enfin a requête final V1.1la derniere que je t'ai soumises on pourra peut etre se comprendre

    bon courage
    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

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

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

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

    merci de ta patience, je vais y arriver en attendant je regarde le post au fur et à mesure

    Oui ce sont des tests sur les anciennes versions et autres sur IE, Firefox pour comprendre le cheminement, mais pas de probléme pour le moment...ca avance tout doucement en fonction du temps disponible

    Suite à la réponse de Qwaz sur les divers états possibles de ajaxloader (nasdaq), voici pour info une petite boucle pour voir à quelle vitesse évolue le bouton Next(euronext) et son statut pour l'évolution (idem pour ajaxloader):
    et bien certaine fois il faut attendre i= 8000 (ce n'est donc pas du haut débit ma connexion!!!ou en tous les cas pas tout le temps, ca ne vient pas d'euronext en tout cas un délai si long)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set boutonpage2 = IEDoc.all("historicalTable_next") 'suggestion de qwaz pour activer le bouton pour passer
        'a la page suivante des datas
    i = 0
    Set TheCode = IEDoc.getElementById("historicalTable_next") 'TheCode est un htmlspanelement
    Sheets("Feuil3").Cells(1, "F").Value = TheCode.outerHTML
    Do
    i = i + 1
    textclassname = TheCode.className
    Sheets("Feuil3").Cells(i, "A").Value = textclassname
    Loop While textclassname = "nyx_eu_paginate_next nyx_eu_paginate_disabled" 'loop tant que le bouton Next est
        'a disabled
    Sheets("Feuil3").Cells(2, "F").Value = TheCode.outerHTML
    A bientôt

  10. #150
    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,

    Fini de lire ton code Patrick c'est ok (cool ton aide), juste un détail le .Paste qui rebelle et ne veut coller sur la feuille excel que si relance par F5/F8
    Par contre j'attaque le code de Qwaz houlala tu as raison je vais avoir mal à la tête, faut prendre son temps parce que là ca tape fort
    Ah la c'est sûr j'aurai un tas de questions pour comprendre (si j'y arrive d'ailleurs)
    Quel sacré boulot vous avez fait, vraiment vraiment épatant.
    Bon WE
    A bientôt et encore merci

  11. #151
    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 Requête GET
    Bonjour,


    J'ai aussi utilisé l'inspecteur pour repérer les infos nécessaires pour la création de l'entête de la requête GET.
    Serait il possible de m'expliquer comment avec l'inspecteur il est possible de trouver la bonne URL pour la requête GET (pour la rosace avec ajaxloader et vos explications ca a été impecccable, mais comment trouver GET?)

    Merci.
    Bonne journée

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

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

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

    Ne sachant pas quel navigateur tu utilises, je vais prendre l'exemple d'IE.

    • Tu charges la page où sont contenues tes données, une fois totalement chargée tu vas dans l'inspecteur d'IE (Touche F12)
    • Tu vas dans la section réseau (panneau latéral gauche, image 1-3)

    Nom : IE + requete 1-3.jpg
Affichages : 310
Taille : 167,5 Ko
    • Tu cliques sur "Activer la capture du trafic réseau" (le bouton "lecture" vert)
    • Puis dans la foulée, tu vas cliquer sur le bouton "refresh" du site

    Nom : IE + requete 2-3.jpg
Affichages : 320
Taille : 123,9 Ko
    • Une ligne va apparaitre dans l'inspecteur, tu attends le chargement complet de tes données ("Loading Data")
    • Si tout c'est bien passé, tu as les informations de la commande GET qui a été transmise au serveur à ta disposition

    Nom : IE + requete 3-3.jpg
Affichages : 311
Taille : 184,7 Ko


    Il peut arriver que le site ait besoin de rafraichir une autre partie de la page et qu'une ou plusieurs autres lignes apparaissent, tu devrais pouvoir identifier facilement celle qui t’intéresse en regardant un peu son contenu.

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

  13. #153
    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,

    C'est noté merci, je teste ca sous peu (ici j'utilise IE pour VBA et sinon Firefox).
    Actuellement je regarde ta requête pour euronext, et tout ton code (trés instructif).
    A bientôt

  14. #154
    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 Qwaz,

    Super ton explication avec images pour GET...
    Peux tu me dire si la suite du raisonnement est exacte merci:
    Tous les setRequestHeader servent à vérifier et définir si le navigateur et le serveur peuvent se comprendre et dialoguer ensemble, si l'un des ces setRequestHeader est faux/non reconnu alors cela bloque le dialogue.
    Par contre si aucun setRequest Header n'est mis le serveur et le navigateur vont dialoguer ensemble sans probléme s'ils sont compatibles et afficher un message d'erreur dasn le cas contraire, indiquant la source de l'incompatibilité...

    Le format, les propriétés du fichier retourné en réponse sont définies par le serveur, mais le serveur peut lui avoir plusieurs options disponibles exploitables grâce au setRequestHeader .
    Exemple le setRequestHeader peut modifier (si le serveur accepte les options demandées) le format, les propriétés du fichier reçu du serveur par exemple:
    au lieu d'un format texte text/javascript obtenir un format word doc/Javascript?
    Sinon je ne vois pas trop à quoi servent les setRequestHeader...

    Ce que tu nommes Streamfile c'est le processus standardisé d'échange pour récupérer le fichier de réponse du serveur contenu dans demandefichier sous forme binaire...

    Une petite question existe t'il un tutoriel pour utiliser/voir l'inspecteur IE/Firefox avec F12 et ses propriétés (trouvé juste quelques explications et exemple en anglais)?

    Bon WE
    Au plaisir

  15. #155
    Inactif  

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

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

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

    oui Stream file c'est bien pour lire et écrire en binaire

    sinon su t veux exactement la commande (get) dans F12 avec IE
    tu va a resaux en suite tu fait démarrer la capture
    tu retourne a ta page et tu clique ou il faut
    tu retourne sur f12 et réseaux et tu va a détail et tu aura une des lignes sur la quelle tu aura GET/"........"les pointillé représentant la ligne de la requête
    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. #156
    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 Patrick,

    Oui merci, et les setrequestheader leurs rôle est plus à titre d'information (sinon quel est leur rôle?), ou peuvent ils modifier le format reçu du serveur si le serveur accepte le format demandé?

    Tu sais ta version avec récupération du code sur la page web, et bien en test elle marche aussi...il y a juste un point d'arrêt qui se relance avec F5/F8 sans probléme et qui est toujours le même avec .paste: échec :la méthode Paste de la classe Worksheet à échoué
    Cela ne se produit pas pour
    MyData.SetText texte
    MyData.PutInClipboard
    'on copie le code de la table dans le presse-papiers
    Set fich = ThisWorkbook
    Set pag = fich.Sheets(1)
    pag.Paste
    ni pour

    'le code du tableau est copié dans le presse-papiers
    Set fich = ThisWorkbook
    Set pag = fich.Sheets(3)
    pag.Paste
    mais uniquement dés que l'emplacement pour Paste est indiqué
    With Sheets(1)
    .Activate: [A1].Select: .Paste
    End With
    ou

    mydata.PutInClipboard
    Set fich = ThisWorkbook
    Set pag = fich.Sheets(2)
    pag.Activate
    Range("a" & Range("a" & Rows.Count).End(xlUp).Row + 1).Select
    pag.Paste
    Sais tu comment éviter cela?

    Bonne journée
    Au plaisir

    PS: tests toujours en cours étude du code aussi

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

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

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

    Alors je ne suis pas sûr de pouvoir répondre correctement à tes questions, sur ces aspects de com entre serveur/client, je ne suis pas au top du tout.

    Ce que je peux en dire
    • Les SetHeader ne semblent pas forcement nécessaire, je pense qu'il est plus correct de les mettre en place pour respecter un protocole logique et ainsi (peut-être) éviter les refus venant du serveur et/ou éviter de susciter trop d’intérêt en regard de demandes client qui seraient trop atypiques (avec des Header vides).
    • Pour StreamFile, oui, c'est une variable de type ADODBStream, le but est de d'utiliser cette structure pour y placer les données binaires retournées par le serveur dans sa réponse et pouvoir ensuite transformer ces données en fichier. J'ai surtout utilisé cette méthode pour voir rapidement ce que le serveur retournait lors des essais, cette partie du code peut-être supprimée pour l’alléger.
    • Pour le format de fichier, oui ton analyse me semble bonne, du moins c'est à cette conclusion que j'en étais arrivé lors de mes recherches sur le sujet. Par contre étant donnée que je ne sais pas ce que le serveur est capable ou non de me retourner, j'utilise le format trouvé dans le Header de la requête. De plus je ne suis pas sûr de la façon de demander tel ou tel format au serveur.


    J'espère que ces réponses te satisferont, si ça n'est pas le cas, je pense que le mieux serait peut-être de te rapprocher d'une autre partie du forum qui traiterait plus des question html, client-serveur,... Je pense qu'il existe de telles sections sur DVP, il te restera ensuite à faire le parallèle avec le code VBA qu'il faudra associer.

    Bonne journée

    ++
    Qwaz

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

  18. #158
    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
    oui effectivement le setdata semble causer des problème de temps en temps je n'est pas d'explication a ce sujet

    pr contre je peux te faire un exemplaire avec une simple variable tableau pour Nasdaq vu que pour Euronext c'est déjà avec un tableau

    et la retranscrire après sur le sheets avec

    range(x).resize(x,y)=tableau

    je te fait ca dans l'après midi

    a toute a l'heure

    edit: 30 seconde plus tard

    comme quoi tu vois quand je te dis de suivre ca n'est pas pour rien dans la requette finale v1.1 c'est déjà le cas
    j'avais déjà supprimé l'utilisation du dataobject

    je t'en supplie essaie le et arrête de ramer sur des versions qui ont des ratés


    je te le redonne

    voila comment je fait pour Nasdaq:
    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
     table = parse_nasdaq2(DemandeFichier.responseText)
        With Sheets("NASDAQ")
            .Activate
            .Range("A1").Resize(UBound(table), 6) = table
        End With
    End Sub
    Function parse_nasdaq2(textehtml) As Variant
        Dim DocumentHTML As Object, tablo As Variant, NBitem As Long, table
        Dim i As Long, e As Long
        '*************************************************************
        'on crée le document html en late bending(aucune reference a activer )
        Set DocumentHTML = CreateObject("htmlfile")
        'On charge les données html transmises dans un htmlDocument
        DocumentHTML.body.innerHTML = textehtml
        '*************************************************************
        Set table = DocumentHTML.getElementsByTagName("TR")
        NBitem = table.Length - 1
        ReDim tablo(NBitem, 6)
        'on met les entetes de colonnesdans le tableau
        For e = 0 To NBitem
            For i = 0 To table(e).Children.Length - 1
                tablo(e, i) = table(e).Children(i).innerText
            Next
        Next
        parse_nasdaq2 = tablo
    End Function
    et voila comment je fait pour Euronext
    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
     table = parse_euronext(DemandeFichier.responseText)
        Sheets("EURONEXT").Range("A1").Resize(UBound(table), 8) = table
        Application.ScreenUpdating = True
    End Sub
    Function parse_euronext(texte As String) As Variant
        Dim carccoupé As Variant, i As Long, e As Long, lignes_données As Variant
        Dim tabligne As Variant, tablo As Variant, a As Long
        carccoupé = Array("Date", "open", "high", "low", "close", "nymberofshares", "numoftrades", "turnover", "currency")
        texte = Replace(texte, "{""data"":[", "")
        texte = Replace(texte, "{""ISIN"":""FR0000120073"",""MIC"":""NYSE Euronext Paris"",""date"":""", vbCrLf)
        texte = Replace(texte, "EUR""},", "")
        texte = Replace(texte, "\/", "/")
        For i = LBound(carccoupé) To UBound(carccoupé)
            texte = Replace(texte, """,""" & carccoupé(i) & """:""", "#")
        Next
        lignes_données = Split(texte, vbCrLf)
        ReDim tablo(UBound(lignes_données), 8)
        For a = 0 To UBound(carccoupé)
            tablo(0, a) = UCase(carccoupé(a))
        Next
        For i = 1 To UBound(lignes_données)
            tabligne = Split(lignes_données(i), "#")
            For e = LBound(tabligne) To UBound(tabligne) - 1
                tablo(i, e) = Replace(tabligne(e), ",", ".")
            Next
        Next
        parse_euronext = tablo
    End Function
    voila et c'est tout
    reprend ce fichier et fait un essai sur Nasdaq et un sur Euronext tu verra il ne plante plus

    et heu ....... accélère un peu
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

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

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

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

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

    Ok super vos réponses...
    Ca avance suis vers la fin pour euronext (enfin!!!) Désolé Patrick j'avais pas vu que tu avais modifié sur nasdaq...
    Merci pour tout
    A bientôt

  20. #160
    Inactif  

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

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

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

    oui j'ai supprimer l'utilisation du dataobject car la référence peut être différente sur les différents systèmes d'exploitation donc pour éviter de devoir faire cette manip j'ai opter pour une variable tableau valable dans tout system
    voila

    dans la version 1.1 tu verra aussi que j'ai supprimer tout control activX (listbox bouton ect...)la liste de durée pour Nasdaq c'est un pop-up au click droit sur la case verte (choisir la duré) dans le carré Nasdaq dans la page d'accueil
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

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

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

Discussions similaires

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

Partager

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