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

serresarmand - 19 juin 2013 à 00:28
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013 - 20 juin 2013 à 18:41
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

Utilisateur anonyme
19 juin 2013 à 02:21
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.
0
Utilisateur anonyme
19 juin 2013 à 02:25
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
0
Utilisateur anonyme
19 juin 2013 à 02:43
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
0
Utilisateur anonyme
19 juin 2013 à 02:49
Bonjour... pardon


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
19 juin 2013 à 02:50
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é.
0
serresarmand
19 juin 2013 à 10:52
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
0
serresarmand
19 juin 2013 à 12:49
personne n'a une idée ?????
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 juin 2013 à 13:09
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.
0
serresarmand
19 juin 2013 à 17:08
c'est la que le bas blaise je ne sais pas les quelles peut tu m'aider
0
serresarmand
19 juin 2013 à 17:09
stp cela serais vraiment trop sympa
0
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
19 juin 2013 à 19:02
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
0
serresarmand
20 juin 2013 à 01:06
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
0
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
20 juin 2013 à 07:49
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
0
serresarmand
20 juin 2013 à 11:00
oui je suis d'accord avec toi mais on fait comment
0
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
20 juin 2013 à 18:41
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
0
Rejoignez-nous