Bonjour,
Je travaille sur EXCEL 2010 sous windows 7. Je souhaite automatiser une requète faite sur notre intranet en naviguant sur une page web. Cette page contient deux frames.
<frame name="HIDDEN" id="HIDDEN" src="/binTatoo/IHM/FrameCachee.aspx" frameBorder="0" scrolling="no">
<frame name="MAIN" id="MAIN" src="/binTatoo/IHM/select_env1.aspx" frameBorder="0" scrolling="yes">
J'utilise le modèle objet HTML doc de VBA.
Ma macro VBA, lance ie, charge le contenu de la page ds un doc HTML. La macro cherche la frame : "MAIN" et clique sur le bon objet. Ca marche. Ie passe à une seconde page.
Mais , arrivé sur la 2ème page l'objet HTML doc que je récupère est vide ???? Il y a rapport avec le fait que la page est composée de frame mais je ne comprends exactement lequel ni comment continuer dans ma navigation.
Tout commentaire est le bienvenu
Etienne
Voici le code que j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Sub DownloadTableFromTATOO() Dim oIE As SHDocVw.InternetExplorer Dim oHMTLDoc As MSHTML.HTMLDocument Dim iHTMLCol As IHTMLElementCollection Dim iHTML_Frame As IHTMLFrameElement Dim oHMTLDoc2 As MSHTML.HTMLDocument 'Open IE and navigate to URL Set oIE = New SHDocVw.InternetExplorer oIE.Width = 500: oIE.Height = 500 oIE.Visible = True 'TATOO Home Page oIE.Navigate cURL_TATOO_Home Set oIE = Find_IE_Ref(cTitle_TATOO, cTitle_TATOO) 'Workaround disconnection issue[/COLOR] 'TATOO prod page Set oHMTLDoc = oIE.Document Set iHTML_Frame = oIE.Document.all.tags("frame").Item("MAIN") Set oHMTLDoc2 = oIE.Document.frames("MAIN").Document Set iHTMLCol = oHMTLDoc2.getElementsByTagName("a") Find_And_Click iHTMLCol, "href", cURL_TATOO_Prod 'Set TABLE=TA1541 Set oHMTLDoc = oIE.Document Set iHTMLCol = oHMTLDoc.getElementsByTagName("input") 'IHTML Col est vide , donc le reste ne marche plus] Find_And_Set_Attribute iHTMLCol, "name", "NumTable", "TA1541" End Sub
J'ai fait une copie d'écran des pages HTML mais je ne peux pas l'attacher pour le moment.
Partager