[ Excel & Seven ] Perte variable

Perte variable [ Excel & Seven ] - VB/VBA/VBS - Programmation

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
Reply

Marsh Posté le 09-09-2013 à 10:19:00   

Reply

Marsh Posté le 09-09-2013 à 12:30:09    

Bonjour,

 

Tu as bien activé les références nécessaires ?


Message édité par Takama13 le 09-09-2013 à 12:30:20
Reply

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.

Reply

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
 

Reply

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 ?

Reply

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 !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed