Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vba et office 2010

34 réponses
Avatar
j
Bonjour,
Petit problème VBA Excel sous Office 2010 :

J'ai une macro simplissime qui se contente d'aller chercher des infos sur
une page html en pilotant internet explorer depuis Excel VBA :

Sub test()
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate ("http://google.fr")
ie.Visible = True
Do While ie.ReadyState <> 4
Loop
Set dct = ie.Document
MsgBox dct.Title
End Sub

La macro, qui fonctionnait correctement depuis des années sous XP, continue
de fonctionner sous W7-Office 2010.

Par contre, si j'essaie de remplacer "http://google.fr" par une bête page
html en local (sur C:), rien ne va plus :
l'objet ie est bien créé, la page html est bien ouverte, mais il semble que
dès l'ouverture de la page, l'objet ie soit supprimé : quand on cherche à
accéder aux propriétés de la page, on reçoit un message d'erreur disant que
l'objet invoqué s'est déconnecté ! (la page html reste ouverte)

Je précise qu'il s'agit d'un ordinateur d'entreprise, et que le test a été
fait dans les mêmes conditions dans une autre entreprise, avec le même
résultat.
On peut imaginer que certains droits d'accès sont restreints pour raisons de
sécurité, mais il est surprenant qu'on puisse accéder à un fichier internet
et pas a un fichier local !
A noter : Excel peut accéder au fichier local sans problème par
Workbooks.open(fichier html local).

Tout ça me semble bien étrange !
J'imagine qu'il y a un paramétrage à faire, mais de quoi ??

D'avance merci
J@C
http://jacxl.free.fr

4 réponses

1 2 3 4
Avatar
j
Avec ie, je récupère le code html des pages, beaucoup plus facile à traiter
(dans mon cas) en vba que ce qui serait affiché dans ww
Et puis, je suis sur une page ie avec des frames, pas sûr de pouvoir gérer
ça avec word (impossible d'ouvrir le frame qui m'intéresse hors de son
environnement)...
Et en outre, j'utilise ce programme depuis des années (jusqu'au changement
de windows - office -ie) et j'ai la flemme de tout refaire - pour une raison
que je ne comprends même pas.
C'est très agaçant de coincer sur un code aussi simple !




"MichD" a écrit dans le message de groupe de
discussion : j3bime$9hu$
Et pourquoi ne traites-tu pas ces pages en HTML en utilisant le programme
"Word" par exemple ?
En quoi l'application "Internet Explorer" est-elle essentielle dans la
résolution de ta problématique ?



MichD
--------------------------------------------

Avatar
MichD
Si tu déclares les 2 bibliothèques suivantes dans les références de ton projetVBA

"Microsoft Internet Controls" et "Microsoft HTMLDocument Object Library",
cela devient plus facile de travailler avec les diverses variables.

Cela te donnera au moins accès aux listes des propriétés et méthodes associées à chacun des objets.

'---------------------------------------------
Sub test()
Dim Dct As HTMLDocument
Dim Ie As InternetExplorer
Set Ie = CreateObject("InternetExplorer.Application")
'Ie.Navigate ("http://google.fr")
Ie.Navigate ("c:Denis.htm")
Ie.Visible = True
Do While Ie.ReadyState <> 4
Loop
Set Dct = Ie.document
MsgBox Dct.body.outerText
MsgBox Dct.URL
End Sub
'---------------------------------------------


MichD
--------------------------------------------
"" a écrit dans le message de groupe de discussion : 4e5a2088$0$13020$

Avec ie, je récupère le code html des pages, beaucoup plus facile à traiter
(dans mon cas) en vba que ce qui serait affiché dans ww
Et puis, je suis sur une page ie avec des frames, pas sûr de pouvoir gérer
ça avec word (impossible d'ouvrir le frame qui m'intéresse hors de son
environnement)...
Et en outre, j'utilise ce programme depuis des années (jusqu'au changement
de windows - office -ie) et j'ai la flemme de tout refaire - pour une raison
que je ne comprends même pas.
C'est très agaçant de coincer sur un code aussi simple !




"MichD" a écrit dans le message de groupe de
discussion : j3bime$9hu$
Et pourquoi ne traites-tu pas ces pages en HTML en utilisant le programme
"Word" par exemple ?
En quoi l'application "Internet Explorer" est-elle essentielle dans la
résolution de ta problématique ?



MichD
--------------------------------------------

Avatar
j
j'ai essayé avec word, effectivement, ça passe, pas de "déconnexion"
ce qui semble bien prouver que le pb vient de ie
Quant à utiliser ww pour mon appli, c'est pas gagné. Ce ww là arrive à
m'ouvrir mon site avec les frames (!) mais je n'arrive pas à piloter ça en
vba (même si l'objet frames existe bien dans ww) : comment récupérer les
infos de la frame n°1 (je sais faire dans ie, mais dans ww ???) ?



"MichD" a écrit dans le message de groupe de
discussion : j3bime$9hu$
Et pourquoi ne traites-tu pas ces pages en HTML en utilisant le programme
"Word" par exemple ?
En quoi l'application "Internet Explorer" est-elle essentielle dans la
résolution de ta problématique ?



MichD
--------------------------------------------

Avatar
MichD
Utilise cette adresse cjoint.com et publie une page HTML.
N'oublie pas de nous retourner ici l'adresse que tu auras obtenue
et dis-moi quelle information tu voudrais extraire dans cette page...

Il n'y a rien comme tel comme travailler à partir d'un exemple concret.



MichD
--------------------------------------------
"" a écrit dans le message de groupe de discussion : 4e5d2b33$0$20748$

j'ai essayé avec word, effectivement, ça passe, pas de "déconnexion"
ce qui semble bien prouver que le pb vient de ie
Quant à utiliser ww pour mon appli, c'est pas gagné. Ce ww là arrive à
m'ouvrir mon site avec les frames (!) mais je n'arrive pas à piloter ça en
vba (même si l'objet frames existe bien dans ww) : comment récupérer les
infos de la frame n°1 (je sais faire dans ie, mais dans ww ???) ?



"MichD" a écrit dans le message de groupe de
discussion : j3bime$9hu$
Et pourquoi ne traites-tu pas ces pages en HTML en utilisant le programme
"Word" par exemple ?
En quoi l'application "Internet Explorer" est-elle essentielle dans la
résolution de ta problématique ?



MichD
--------------------------------------------

1 2 3 4