[VB6 -> VBA] novice en vba (XMLHttpRequest )

Signaler
-
jibob
Messages postés
59
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
4 juillet 2013
-
Bonjour a tous
Je suis novice en la matière mais je me débrouille pas mal enfin aujourd'hui je coince un peut
Mon problème et le suivant je veut faire une requête à un serveur avec la méthode XMLHttpRequest et GET afin récupérer la réponse avec XMLHttpRequest.responseText
mais problème l'url change
en effet https://www.boursedirect.fr/streaming/ajaxExpose.php?function=requeteValeur¶meters=E%3AALU|6|reel&output=&time=VARIABLE
Cette Url est générée par le script d'une page web
Serait il possible d'interroger le serveur pour avoir la dernière url génère par le script
Je programme en vba sous l'apli d'Excel
Merci de votre aide

15 réponses


Bonjour,

Tu est bien mal parti. Je viens de récupérer cela dans mon aide de VBA Excel:

Début de copie:

Résultats de la recherche pour XMLHttpRequest
Aucun résultat renvoyé pour XMLHttpRequest.
Conseils pour de meilleurs résultats :
Reformulez votre recherche
Vérifiez l'orthographe

Résultats de la recherche pour HttpRequest
Aucun résultat renvoyé pour HttpRequest.
Conseils pour de meilleurs résultats :
Reformulez votre recherche
Vérifiez l'orthographe

Fin de copie

De toute évidence, tu es bien loin du VBA. C'est peut-être du VB.net.

Et puis le règlement dit que tu dois produire ton code.

Et puis, tu as réussi à ne pas poser ta question dans bonne section. Il y une section VBA dans la branche VB6: Langages dérivés/VBA

Dans le projets VBA, tu dois faire référence a une des librairies Microsoft XML, Vx et l'objet XMLHTTP de cette librairie te permet de faire des requêtes sur ton XML

Voici un extrait de code (incomplet)
Set XMLHTTPRequest = New MSXML2.XMLHTTP
      Call XMLHTTPRequest.Open("POST", strUrl & "?" & strFormData)
      Call XMLHTTPRequest.send
     
      'Initialisation de la variable de début d'attente avec l'heure système
      dateDebutAttente = Date + Time
     
      'On attend au maximum 20 secondes
      dateTempsAttenteMaximum = TimeSerial(0, 0, 20)
     
      'On attend la réponse du serveur
      While (Not XMLHTTPRequest.readyState = 4) And (Date + Time < dateDebutAttente + dateTempsAttenteMaximum)
         DoEvents
      Wend
      'récupération du resultat si la connection a reussie
      strXMLreponse = XMLHTTPRequest.responseText


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Bonjour... pardon


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Bonjour,

Dans le projets VBA, tu dois faire référence a une des librairies Microsoft XML, Vx et l'objet XMLHTTP de cette librairie te permet de faire des requêtes sur ton XML


Je ne savais pas. Désolé.

Effectivement je fais référence a une des librairies Microsoft XML, Vx et l'objet XMLHTTP de cette librairie te permet de faire des requêtes sur ton XML

mon code et le suivant :

Sub lecture_code_page()

Dim XMLHttpRequest As XMLHTTP

Dim Start As Single, Delay As Integer

Do
' On crée l'instance
Set XMLHttpRequest = New MSXML2.XMLHTTP

'On envoie la requete
XMLHttpRequest.Open "GET", "https://www.boursedirect.fr/streaming/ajaxExpose.php?function=requeteValeur¶meters=E%3AALU|6|reel&output=&time=1371630990", True
XMLHttpRequest.send (Null)

Debug.Print Compteur

'On attend la réponse du serveur
Do Until XMLHttpRequest.readyState = 4
DoEvents
Loop

'récupération du resultat
Debug.Print XMLHttpRequest.responseText

'On attend 1s
Delay = 1
Start = Timer + Delay
While Timer < Start
DoEvents
Wend

Loop

End Sub

ce code marche bien mais mon problème et le changement de l'url pour faire la requête

https://www.boursedirect.fr/streaming/ajaxExpose.php?function=requeteValeur¶meters=E%3AALU|6|reel&output=&time=1371630990
puis
https://www.boursedirect.fr/streaming/ajaxExpose.php?function=requeteValeur¶meters=E%3AALU|6|reel&output=&time=1371630993
puis
https://www.boursedirect.fr/streaming/ajaxExpose.php?function=requeteValeur¶meters=E%3AALU|6|reel&output=&time=1371630995
puis
.....

En fait dans la page web il y a un script qui généré une URL et qui fais une requête au serveur

Code de la page :

DetectFlashVer = 0;










.ALCATEL-LUCENT

FR0000130007 - ALU







1.496 EUR
6.02 %
à





Vol. 39 517 571








Et code du scrpit /streaming/javascripts/ajaxExpose.js :
function getMicrosecondes() {
// http://kevin.vanzonneveld.net
// + original by: GeekFG (http://geekfg.blogspot.com)
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: metjay
// * example 1: timeStamp = time();
// * results 1: timeStamp > 1000000000 && timeStamp < 2000000000

return Math.round(new Date().getTime()/1000);
}

function ajaxExpose(fonction,parameters, output, refresh, fctJsToCallOnComplete)
{
var microsecondes = getMicrosecondes();
var param = "function=" + fonction + "¶meters="
+ parameters + "&output=" + output + "&time=" + microsecondes;


$.ajax
({
type:"GET",
url: "/streaming/ajaxExpose.php",
data: param,
success: function(data)
{
var divAjax = data.split(";");
var tabDiv;

$("#ajax_debug").html(data);

for (var i=0;i
réseau ==> log

Ma question est la suivante existe t'il une fonction qui permet de d'interoger le serveur pour récupérer la dernier url envoyé par le site web ou faut t'il procéder autrement

personne n'a une idée ?????
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,
Bien sûr que oui ! Tout le monde, à commencer par toi !
La "fonction" que tu cherches n'existe pas. Il te faut donc exécuter une série d'instructions. ===>> Commence.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

c'est la que le bas blaise je ne sais pas les quelles peut tu m'aider

stp cela serais vraiment trop sympa
Messages postés
59
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
4 juillet 2013

Bonjour à tous,

c'est la que le bas blaise
"C'est là que le bât blesse"
http://www.linternaute.com/expression/langue-francaise/31/c-est-la-que-le-bat-blesse/

Le logiciel ethereal rebaptisé "wireshark" pour l'occasion
http://www.clubic.com/telecharger-fiche11151-wireshark-ex-ethereal.html

doit permettre de t'en sortir et de trouver le chainon manquant afin que tu puisses te passer de la page HTML,
car il est en mesure de voir passer la totalité des trames HTML (données - requêtes HTTP - fichiers)

Cordialement

merci je vais suivre tes conseilles mais comment procède t'on par la suive pour lire les url depuis Excel vba affin de recréé un tableau de valeurs
Messages postés
59
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
4 juillet 2013

Bonjour à tous,

Chaque chose en son temps.
Pour l'instant il te faut résoudre quelle méthode il faut invoquer pour obtenir la bonne URL en envoyant les bonnes requêtes.

Si cette phase d'analyse est inachevée, inutile d'aller plus loin.

Cordialement

oui je suis d'accord avec toi mais on fait comment
Messages postés
59
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
4 juillet 2013

Bonjour à tous,

oui je suis d'accord avec toi mais on fait comment
Tu installes le logiciel que je t'ai indiqué et tu lis son mode d'emploi.
Ensuite tu lances ton navigateur internet, tape le site que tu utilises, puis tu sauves les trames dans un fichier texte.
A toi de séparer les différentes actions.

Si tu ne connais pas la structure du HTML, c'est le moment de t'y mettre et de repartir de ZÉRO au besoin:
http://www.siteduzero.com/informatique/tutoriels/apprenez-a-creer-votre-site-web-avec-html5-et-css3

mais comment procède t-on par la suite pour lire les url depuis Excel
acive t'a apporté la solution sur un plateau, il faut lire les réponses.
vba afin de recréé un tableau de valeurs
Si tu ne sais pas manipuler une feuille de calcul Excel, le mieux c'est de combler tes carences http://excel.developpez.com/cours/?page=prog' target='_blank'>ici et sans modération
et non d'attendre que le code final te tombe tout cuit.

Cordialement