IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gérer des "DropdownContainer" dans IE [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut Gérer des "DropdownContainer" dans IE
    Bonjour,

    J'ai une macro pour remplir un formulaire sur IE que je fais une dizaine de fois par mois à partir d'info sur xls.
    Si j'arrive bien à inscrire mes infos dans les cases textes par un code similaire à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        Set Helem = IE.Document.getElementById("subject")
                        Helem.Value = titre
    ,
    je n'arrive pas par contre à faire choisir dans une liste déroulante "DropdownContainer" la xième ligne proposée.
    Naturellement le formulaire rejette l'action directe par exemple.

    Comment gérer ces éléments htlm et leur faire choisir la xieme ligne proposée ?

    Merci de votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    un exemple que j'utilisais pour mon cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.Document.all("ListPaysNaissFR").SelectedIndex = x

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut
    Citation Envoyé par mercatog Voir le message
    un exemple que j'utilisais pour mon cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.Document.all("ListPaysNaissFR").SelectedIndex = x
    Bonjour Mercatog,

    merci de ta réponse.
    Vraiment ignare en html, j'ai fait des essais sur la base suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                       Set helem = IE.Document.all("startTimeDropdownName")
                       helem.SelectedIndex = 3
    Rien ne fonctionne ("Propriété ou méthode non géré par cet objet"), comme si je n'arrivais pas à sélectionner le bon objet.

    Pour te décrire le rendu graphique de la page, on a une boite texte de titre "Date/heure", suivi d'une boite d'entrée calendrier (soit mauellement soit en accédant à un calendrier) puis une boite de liste de choix pour l'heure. C'est cette dernière que je n'arrive pas à configurer automatiquement en prenant la 3eme (par ex) proposition.
    Le code source de la page qui semble d'écrire cette partie, est le suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
           <tr><td class="label"><span class="req">* </span>Quoi</td><td><input id="eventNameText" class="text" type="text" value=""><span id="invalidName" class="hide sysMessage error errorMsg"></span></td></tr>
            <tr id="startTimeContainer"><td class="label"><span class="req">* </span>Date/Heure</td><td>
                <span class="eventDate floatL"><input type="text" id="eventStartDate" class="text" readonly="readonly"></span>
                <div id="startTimeDropdownContainer">
                    <div id="startTimeDropdownDivName" class="glue-dropdown">
                        <a href="javascript:void(0);" value=""> <span class="floatRAbsolute"></span></a>
                        <ul id="startTimeDropdownName">
                        </ul>
                    </div>
                </div> 
                <span id="invalidStartDate" class="hide sysMessage error errorMsg"></span>
                <a href="javascript:void(0);" id="addEndTimeHint" class="tabselector linktext">Ajouter une heure de fin</a>
            </td></tr>
    J'ai essayé le code vb avec le ID suivant : startTimeContainer, startTimeDropdownContainer, startTimeDropdownDivName startTimeDropdownName, rien en marche.

    A priori je m'y prends mal.
    As tu une idée ?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.Document.getElementById("startTimeDropdownName").SelectedIndex = 3
    Tu peux disposer l'url du site en question?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut
    C'est du mysapce, la page de cration d'évènement.
    http://events.myspace.com/Create

    Si tu n'as pas de session, je peux te passer celle d'un site test en MP.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Après plusieurs essais et tâtonnement, je suis arrivé à faire fonctionner la machine. Peut être la dropdown est spécifique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub Attente(IE As InternetExplorer)
    Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy
        DoEvents
    Loop
    End Sub
     
    Sub VALIDER()
    Const Logi As String = "xxxxx@yyyy.fr" 'email
    Const MdP As String = "zzzzzzzz"         'Mot de Passe
    Dim IE As New InternetExplorer
    Dim ieDoc As HTMLDocument
    Dim Enfants As HTMLElementCollection
    Dim stURL As String, Genre As String, Cout As String, Groupe As String, Descript As String
    Dim Annee As String * 4, Jour As String * 2, Mois As String * 2, Heure As String * 2, Minut As String * 2
     
    Application.ScreenUpdating = False
     
    stURL = "http://events.myspace.com/Create"
    IE.navigate stURL
    Attente IE
    IE.Visible = True
     
    With IE.document
        'Login et password-------------------------------------------------------
        On Error Resume Next
        .getElementById("emailSplash").innerText = Logi
        .getElementById("passwordSplash").innerText = MdP
        .forms(2).submit
        On Error GoTo 0
        '------------------------------------------------------------------------
        Attente IE
        'Ajouter routine de vérification si mdp et login corrects
        'Inituialiser variables
        Annee = "2010": Jour = "23": Mois = "12": Heure = "23": Minut = "30"
        Genre = "Aventure": Cout = "500€": Groupe = "Exotique": Descript = "Morocco"
     
        .getElementById("eventNameText").innerText = Groupe & " ' Genres; " & Genre
        .getElementById("eventStartDate").innerText = Jour & "/" & Mois & "/" & Annee
        '---------------------------------------------------------------------------------------
        'C'est là que je me suis débrouillé après des milliers d'essais
        With .getElementById("startTimeDropdownDivName")
            For Each Enfants In .Children
                Enfants.innerText = Format(TimeSerial(Val(Heure), Val(Minut), 0), "hh:nn")
            Next Enfants
        End With
        '---------------------------------------------------------------------------------------
        'là, ca marche
        .getElementById("locPickerInput").innerText = Groupe
        .getElementById("eventCity").innerText = "Genre  :" & Genre
        .getElementById("eventState").innerText = "  PAF : " & Cout
        .getElementById("eventDescText").innerText = Descript
     
        Attente IE
        .getElementById("saveEvent").Click
        Attente IE
        '  .Close
    End With
    MsgBox "Programmation enregistrée sur MySpace"
    Set ieDoc = Nothing
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gérer des actions de suppression dans un tableau
    Par Viscapon dans le forum Struts 1
    Réponses: 6
    Dernier message: 13/01/2009, 13h44
  2. Gérer des web controle dynamiquement dans un aspx
    Par jeromechezgdf dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/06/2007, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo