Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1658 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ Excel & Seven ] Perte variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Excel & Seven ] Perte variable

n°2202256
westdl
Posté le 09-09-2013 à 10:19:00  profilanswer
 

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
mood
Publicité
Posté le 09-09-2013 à 10:19:00  profilanswer
 

n°2202283
Takama13
Posté le 09-09-2013 à 12:30:09  profilanswer
 

Bonjour,

 

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


Message édité par Takama13 le 09-09-2013 à 12:30:20
n°2202288
westdl
Posté le 09-09-2013 à 13:06:41  profilanswer
 

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.

n°2202407
Marc L
Posté le 10-09-2013 à 09:54:24  profilanswer
 

 
             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
 

n°2202429
westdl
Posté le 10-09-2013 à 11:08:34  profilanswer
 

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 ?

n°2202433
Marc L
Posté le 10-09-2013 à 11:55:57  profilanswer
 

 
           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 !
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ Excel & Seven ] Perte variable

 

Sujets relatifs
Je souhaite une macro qui ouvre un fichier excel. Résolu Merci[VBS] retour d'information sur variable d'un run !!!
répartition de livraisons sous excel[PHP] if elseif definition variable [resolu]
[VBS] Variable concaténé suivant decompte du compteur[EXCEL] Calcul de prono pour le foot :p
Script qui ouvre une pop-up à la perte réseauVBA Excel, ouvrir une seule feuille d'un Workbook
EXCEL 2010 PROBLEME DE PROGRAMATION BDCDESQL 3 tables récupérer des informations en fonction d'une variable
Plus de sujets relatifs à : [ Excel & Seven ] Perte variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR