VBA/html : Select option dans la liste déroulante d'une page web
Résolu
tekillah4
-
tekillah4 -
tekillah4 -
Bonjour,
J'ai un code VBA qui m'ouvre une page web dans laquelle j'aimerais sélectionner l'option "Excel (Current fields)" contenue dans une liste nommée "views" .
J'y connais pas grand chose en lecture de code source. Après recherche je n'ai pas trouver de solution à mon pb.
Ci-joint mon code ( limité à l'ouverture de la page désirée).
Ainsi que le code de l'option que j'aimerais sélectionner:
Manuellement lorsque je sélectionne cette option dans ma liste, cela me fait un export Excel des données affichées. J'aimerais reproduire la même chose avec ma macro.
Merci de me dire si vous avez besoin d'infos complémentaires.
Merci à tous
Tek
J'ai un code VBA qui m'ouvre une page web dans laquelle j'aimerais sélectionner l'option "Excel (Current fields)" contenue dans une liste nommée "views" .
J'y connais pas grand chose en lecture de code source. Après recherche je n'ai pas trouver de solution à mon pb.
Ci-joint mon code ( limité à l'ouverture de la page désirée).
Sub ConnexionJIRA() Const READYSTATE_COMPLETE = 4 Dim IE Dim elementHtml As Object Set IE = CreateObject("internetExplorer.Application") 'ouvre internet explorer IE.Visible = True With IE .Navigate "https://jira.itsm.atosworldline.com/jira/secure/IssueNavigator.jspa?sorter/field=issuekey&sorter/order=ASC" 'va sur la page du site Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu'à ce que la page soit chargée DoEvents Loop End With Set elementHtml = IE.document.getElementById("username") 'on selection une case du formulaire elementHtml.Value = "*****" 'on donne une valeur à cette case Set elementHtml = IE.document.getElementById("password") 'on selection une case du formulaire elementHtml.Value = "*****" 'on donne une valeur à cette case Set ObjectIE = IE.document.forms("login_form") 'on selectionne un bouton ObjectIE.submit 'on clique sur ce boutonexport End Sub
Ainsi que le code de l'option que j'aimerais sélectionner:
Manuellement lorsque je sélectionne cette option dans ma liste, cela me fait un export Excel des données affichées. J'aimerais reproduire la même chose avec ma macro.
<section id="content" role="main"> <header> <div id="navigator-options"> <ul class="operations"> <li class="aui-dd-parent"> <a href="#" id="viewOptions" class="lnk aui-dd-link standard icon-views"><span>Views</span></a> <div class="aui-list hidden"> <ul id="viewOptions-dropdown" class="aui-list-section aui-first"> <li class="aui-list-item"><a class="aui-list-item-link" id="currentExcelFields" rel="nofollow" href="/jira/sr/jira.issueviews:searchrequest-excel-current-fields/75275/SearchRequest-75275.xls?tempMax=1000">Excel (Current fields)</a></li>
Merci de me dire si vous avez besoin d'infos complémentaires.
Merci à tous
Tek
A voir également:
- VBA/html : Select option dans la liste déroulante d'une page web
- Editeur html - Télécharger - HTML
- Br html ✓ - Forum Webmastering
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Espace en html ✓ - Forum HTML
1 réponse
Bonjour,
Difficile car nous ne pouvons pas tester et n'avons pas accès au code source...
Essayons...
Il te faut attribuer, à ta liste, le "nom" souhaité.
Pour cela, il te faut trouver, dans le code, le bon "endroit" ou placer ce nom.
Pour cela, tu peux chercher l'élément dont l'id est "currentExcelFields"
Pour cela :
Difficile car nous ne pouvons pas tester et n'avons pas accès au code source...
Essayons...
Il te faut attribuer, à ta liste, le "nom" souhaité.
Pour cela, il te faut trouver, dans le code, le bon "endroit" ou placer ce nom.
Pour cela, tu peux chercher l'élément dont l'id est "currentExcelFields"
Pour cela :
Sub ConnexionJIRA() Const READYSTATE_COMPLETE = 4 Dim IE As Object Dim elementHtml As Object Set IE = CreateObject("internetExplorer.Application") 'ouvre internet explorer IE.Visible = True With IE .Navigate "https://jira.itsm.atosworldline.com/jira/secure/IssueNavigator.jspa?sorter/field=issuekey&sorter/order=ASC" 'va sur la page du site Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu'à ce que la page soit chargée DoEvents Loop End With Set elementHtml = IE.document.getElementById("username") 'on selection une case du formulaire elementHtml.Value = "*****" 'on donne une valeur à cette case Set elementHtml = IE.document.getElementById("password") 'on selection une case du formulaire elementHtml.Value = "*****" 'on donne une valeur à cette case Set ObjectIE = IE.document.forms("login_form") 'on selectionne un bouton ObjectIE.submit 'on clique sur ce boutonexport Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu'à ce que la page soit chargée DoEvents Loop Dim IEDoc As HTMLDocument Dim htmlSelectElem As HTMLSelectElement Set IEDoc = IE.document Set htmlSelectElem = IEDoc.getElementById("currentExcelFields") 'Ici, tu dois chercher à entrer la bonne valeur End Sub
La suite du code c'est :
Set IEDoc = IE.document
Set htmlSelectElem = IEDoc.getElementById("currentExcelFields")
htmlSelectElem.Click
Merci :)