Perte variable [ Excel & Seven ] - VB/VBA/VBS - Programmation
Marsh Posté le 09-09-2013 à 12:30:09
Bonjour,
Tu as bien activé les références nécessaires ?
Marsh Posté le 09-09-2013 à 13:06:41
Bonjour et merci pour ta réponse.
Oui j'ai exactement les mêmes sous XP que sur Seven.
Deplus, je ne pense pas qu'il s'agisse d'une référence manquante car l'affectation de IE fonctionne au début de la sub.
En mode pas à pas:
- L'affectation d'InternetExplorer à IE fonctionne bien (visible en variable locale)
- IE navigue bien sur l'URL de la page (ouverture de la page demandé si rendu visible dans le programme)
- Busy de la page ("Nothing" dans l'explorateur de variables locales) => perte d'affectation !!!
- methode non géré pour innerHTML (due au "Nothing" ) qui entraine un plantage au moment de renseigner "codesource"
Je ne comprend pas pourquoi IE perd son affectation en cours de route.
Marsh Posté le 10-09-2013 à 09:54:24
Bonjour.
westdl a écrit : Je dois dans un classeur Excel récupérer le code d'une page web contenant des données (string, integer, date) |
Si le but est de récupérer des données d'une page et non pas son code HTML,
il existe une autre méthode plus simple, moins contraignante, etc … si la page est organisée en tables via l'objet QueryTable …
Cela peut se vérifier manuellement (en profitant aussi de l'Enregistreur de macros …) depuis une feuille de calculs
via Nouvelle requête sur le Web qui se trouve dans les Données …
Marsh Posté le 10-09-2013 à 11:08:34
Bonjour,
Je sais mais, je ne récupére que certaines données de la page. Deplus, les formats de date ne sont pas les mêmes d'une donnée à l'autre (format Fr et US mélangés). Je récupére donc le code de la page, puis je le parse et extrait, en les remettant en forme, uniquement les données dons j'ai besoin.
Par contre, personne n'a d'idée sur la perte de valeur de la variable ?
Marsh Posté le 10-09-2013 à 11:55:57
Je fais la même chose via une QueryTable; après traitement, rien n'empêche de l'effacer.
J'ai des applicatifs financiers qui tournent ainsi depuis des années développés sous XP & Excel 2003,
fonctionnant toujours sous Seven et même Windows 8 et dont certains sont passés sous Excel 2007 et plus …
Par expérience, j'évite autant que possible le pilotage d'IE assez chronophage à mettre en œuvre et,
même une fois que cela fonctionne, on ne sait si cela va durer :
une p'tite modif sur la page web et hop le code est à l'ouest !
Marsh Posté le 09-09-2013 à 10:19:00
Bonjour à tous, je suis nouveau sur le forum et c'est mon premier post.
Mon problème: Je dois dans un classeur Excel récupérer le code d'une page web contenant des données (string, integer, date)
Pour cela, j'ai développé un sub qui marchait très bien sous Xp mais qui sous Seven perd une variable objet en cour de route.
Mon code:
Dim UR1 As String, pat As String
Dim codesource As String, IE As Object
UR1 = Range(Range("A2" ).Value).Value '(URL du site)
pat = Range("A4" ).Value '(Répertoire de travail)
Set IE = CreateObject("InternetExplorer.Application" )
IE.visible = False
IE.Navigate URL:=UR1
While IE.Busy
DoEvents
Wend
codesource = IE.document.body.innerHTML
IE.Quit
Open pat & "code source.txt" For Output As #1
Print #1, codesource
Close #1
Sous Seven, "IE" est vide après le Busy de la page HTLM !
Je sèche sur la cause de la perte de la variable.
Si quelqu'un y comprend quelques choses...
Merci
---------------
Westdl