Exécution de JavaScript

Matt_r Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,



Dans un macro, je navigue sur internet et cherche à exécuter un JavaScript définie comme suit dans le code source :

<div class = "Niveau 2" id="DivElement" NbFils="0" IdPere="1" Ouvert="1" Niveau="2" IdElement="5">
<a href="javascript:LoadReqPredef('36');">
Texte - Recherche avancée


En fait, le travail se fait sur un site uniquement disponible en Intranet de ma boite, donc pas moyen de tester sur un autre poste que ceux de mon bureau...
Quand j'exécute le code ci-dessous, rien ne se passe, tout simplement...

Mon code VBA est le suivant :

Sub Rechercher()
On Error Resume Next

Dim oIe as New InternetExplorer
oIe.Visible = True

oIe.Navigate = "http://actif/"

Do Until oIe.readystate = READYSTATE_COMPLETE
DoEvents
Loop

oIe.Document.parentWindow.execScript "LoadReqPredef('36')", "JavaScript"

[...]

End Sub


Les références suivantes sont cochées :
Visual Basic for Applications - Microsoft Excel 14.0 Object Library - OLE Automation - Microsoft Office 14.0 Object Library - Microsoft HTML Object Library - Microsoft Internet Controle - JavaWebStart 1.0 Type Library - Microsoft Shell Controls and Automation.

Merci d'avance pour vorte aide précieuse !

Matt

3 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Essaye avec l'affectation, à une variable HTMLDocument, de ta page Internet.
Comme ceci :
Sub Rechercher()
Dim oIe as New InternetExplorer
Dim oIeDoc As HTMLDocument

'SUPPRIME MOI CETTE LIGNE!!!!!!!!!!!!!
'On Error Resume Next

oIe.Navigate = "http://actif/"
oIe.Visible = True

Do Until oIe.readystate = READYSTATE_COMPLETE
    DoEvents
Loop

'ICI On affecte notre variable HTMLDocument :
Set oIeDoc = oIe.document

oIeDoc.parentWindow.execScript "LoadReqPredef('36')", "JavaScript"

End Sub


Après, sans accès au code source, difficile de t'aider davantage...

Note : On Error Resume Next n'est à utiliser que lorsque l'on "maîtrise" l'erreur. Si tu ne sais pas d'où peut bien provenir ton ou tes erreurs, fait des tests.
Cordialement,
Franck
0
Matt_r Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup !

Après avoir fait ce que tu conseillais, j'obtiens un message d'erreur :

Erreur d'exécution '-2147352319 (80020101)':
Erreur Automation


A méditer donc :D

J'ai également utilisé un espion sur oIeDoc, la variable HTMLDocument relative à l'objet IE. En observant les anchors, j'ai été surpris de voir qu'ils ne contenaient aucun item, alors que le JavaScript à exécuter est défini par la balise <a> ...

Enfin, Franck, je peux te fournir le code source de la page si tu le souhaites, mais qu'est ce qu'il t'apporterai de plus que les lignes définissant le JavaScript que j'ai déjà postées dans mon premier message ?

En tout cas, je te remercie pour cette réponse rapide.

Ps : je dis probablement d'énormes bêtises mais je débute en HTML ... j'espère que l'excuse est suffisante :p
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
J'ai bien médité....
je peux te fournir le code source de la page si tu le souhaites, mais qu'est ce qu'il t'apporterai de plus que les lignes définissant le JavaScript que j'ai déjà postées dans mon premier message ?
Ca permet, éventuellement, de tester en "condition réelle"...

Le code fournit précédemment fonctionne, chez moi, sur une page html, sans souci.
Du coup, il faudrait que je puisses tester sur ta page...
Lorsque j'exécute ce code en "pas à pas", la variable oIeDoc contient "[object]".
0