VBA/html : Select option dans la liste déroulante d'une page web

Résolu/Fermé
tekillah4 - Modifié par pijaku le 17/10/2014 à 08:53
 tekillah4 - 20 oct. 2014 à 11:18
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).

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:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
17 oct. 2014 à 09:06
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 :
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

1
merci pijaku, tu m'as mis sur la voie :
La suite du code c'est :

Set IEDoc = IE.document
Set htmlSelectElem = IEDoc.getElementById("currentExcelFields")
htmlSelectElem.Click


Merci :)
0