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

Résolu
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

1 réponse

  1. Modérateur
    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
    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