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 :)