b2byl
-
Modifié par pijaku le 19/05/2016 à 08:01
b2byl -
19 mai 2016 à 10:28
Bonjour a tt le monde
si qu'elqu'un veux bien m'aider !
j'ai une macro vba qui permet :
1) de me connecter sur un page web
2) d'inserer les valeurs date debut, date de fin
3) de charger les donner
4) Exporter les données dans un format( Excel, word, csv, pdf) , le bouton est sous la forme d'une liste deroulante.
le probléme c'est que je me suis bloqué à la quatriéme étape, c'est a dire j'arrive pas à acceder au bouton exporter
avec le code html de la page.
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub
'*****************************************************************************************************************************************************************
Sub ExplorerShel()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim InputGoogleZoneTextefirst As HTMLInputElement
Dim InputBouton As HTMLInputElement
Dim onclick As HTMLDocument
Dim InputBoutonbis As HTMLInputElement
Dim htmlSelectElem As Range
'Affichage de la fenêtre IE
IE.Visible = True
IE.navigate "http://reports.flexiblecontactcenter.orange-business.com/Reports/Pages/Report.aspx?ItemPath=%2fG2R1C5%2fFRA%2fFile+d'attente%2fFile+d'attente+Export"
'*****************************************************************************************************************************************************************
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.document
'On pointe notre Zone de texte
Set InputGoogleZoneTextefirst = IEDoc.all("ctl31$ctl04$ctl05$txtValue")
'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTextefirst.Value = "01/03/2016"
WaitIE IE
'*****************************************************************************************************************************************************************
'*****************************************************************************************************************************************************************
WaitIE IE
'On pointe notre Zone de texte
Set InputGoogleZoneTextesecond = IEDoc.all("ctl31$ctl04$ctl07$txtValue")
'On définit le texte que l'on souhaite placer à l'intérieur
WaitIE IE
InputGoogleZoneTextesecond.Value = "05/03/2016"
'*****************************************************************************************************************************************************************
WaitIE IE
'On pointe notre bouton
Set InputBouton = IEDoc.all("ctl31$ctl04$ctl00")
'On simule un clic
InputBouton.Click
'*****************************************************************************************************************************************************************
#Quatriéme étape : Exporter les données sur excel
WaitIE IE
'Set onclick = IEDoc.all("ctl31_ctl09")
'htmlSelectElem = IEDoc("ctl31_ctl09")
'*************************************************************************************************************************************************************
'On libère la variable IE
Set IE = Nothing
End Sub
pijaku
Messages postés12263Date d'inscriptionjeudi 15 mai 2008StatutModérateurDernière intervention15 mars 202314 19 mai 2016 à 08:54
Alors, dans ce cas, il te faut établir la collection des balises "liens" (<a></a>) de ta page, boucler sur cette collection pour trouver l'élément qui a pour innertext (ou innerhtml franchement je ne sais plus, ça fait longtemps...) Excel.
Un peu comme ceci :
Dim Col_liens As IHTMLElementCollection
Dim Elem As HTMLGenericElement 'ou As HTMLAnchorElement
Set IEDoc = IE.document
Set Col_liens = IEDoc.getElementsByTagName("a")
For Each Elem In Col_liens
If Elem.innertext = "Excel" Then Elem.Click: Exit For
'ou :
'If Elem.innerhtml = "Excel" Then Elem.Click: Exit For
Next
Ou alors, plus simple, si ton bouton lance une fonction javascript, ton code devient :
Set IEDoc = IE.document
IEDoc.parentWindow.execScript "Nom_fonction_Javascript", "JavaScript"
Bonjour,
j'ai essayé ! mais ça ne marche pas
il veux pas rentrer dans la boucle car l'objet est vide.
voici le code html qui correspond au Menu du bouton exporter sous peux être que se sera plus clair:
pijaku
Messages postés12263Date d'inscriptionjeudi 15 mai 2008StatutModérateurDernière intervention15 mars 202314 19 mai 2016 à 10:07
il veux pas rentrer dans la boucle car l'objet est vide. As tu, au préalable, actualisé ta variable IEDoc?
voici le code html qui correspond au Menu du bouton exporter sous peux être que se sera plus clair Non ce ne sera clair que si je peux accéder à la page en question, ce qui n'est pas le cas...