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 :

Problème avec une liste déroulante HTML


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Par défaut Problème avec une liste déroulante HTML
    Salut à tous,

    J'essaie d'écrire une macro Excel qui me permet de parcourir une page intranet et récupérer des infos dessus.

    Sur ma page intranet j'ai une liste déroulante sur laquelle j'aimerais intéragir et changer la valeur.

    Le code source en HTML de la liste deroulante est le suivant:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <SELECT name="findby" tabIndex="1" class="selectCode" onchange="changeSearchBy();document.filteringForm.criterion.focus();return true;"  > 
    <OPTION selected value=Name>Name</OPTION> 
    <OPTION value=RICOS>Ricos</OPTION> 
    <OPTION value=SGC>SGC</OPTION> 
    <OPTION value=DIG>DIG</OPTION> 
    <OPTION value=RMC>RMC</OPTION> 
    <OPTION value=REUTERS>REUTERS</OPTION> 
    </SELECT>
    Je veux choisir dans ma liste "RICOS" pour cela dans mon code VBA j'essaie la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim htmlSelectElem As HTMLSelectElement
    Set htmlSelectElem = ie.document.getElementByTagName("findby")
    htmlSelectElem.Value = "RICOS"
    IEDoc.parentWindow.execScript "changeSearchBy()", "JavaScript"
    Mais ça ne marche pas.

    J'ai aussi essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set htmlSelectElem = IEDoc.all("findby")
    Mais cela ne marche pas non plus.


    Comment puis-je faire pour sélectionner dans ma liste la valeur RICOS?


    Merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Bonjour,

    Qu'est-ce qui ne fonctionne pas? une erreur? Il ne se passe rien? Pas la bonne valeur retournée? ...
    Sans ça, difficile de t'aider

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Par défaut
    Bonjour,

    Désolé pour le manque de précision, voila les erreurs que j'ai:

    Quand j'essaie avec Set htmlSelectElem = ie.document.getElementByTagName("findby") j'ai l'erreur suivante:

    Run time error '438'
    Object doesn't support this property or method
    Si j'essaie avec Set htmlSelectElem = IEDoc.all("findby"), j'ai l'erreur suivante:

    Run-time Error '13'
    Type Mismatch
    Merci

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    Un langage informatique, quel qu'il soit, est comme la langue française : les fautes d'orthographe sont fatales ‼

    Et le message d'erreur est pourtant clair : une propriété ou méthode (objet) n'est pas supportée !
    En effet, getElementByTagName n'existe pas ! Par contre getElementsByTagName oui …

    Quant à la seconde erreur, là aussi le message est pourtant clair !

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  5. #5
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Par défaut
    Salut Marc et merci pour ta réponse,

    Effectivement c'est bien getElementsbyTagName, mais même avec le bon orthographe j'ai l'erreur "Run-Time Error '13' Type Mismatch"

    Donc comment faire pour résoudre ce problème?

    Merci d'avance
    Cdt

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    La variable est déclarée pour un type précis et tu tentes de lui en affecter un autre
    comme pourtant clairement indiqué via le bouton Aide du message !

    Exemple équivalent à ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test4Noob()
        Dim L As Long
        L = "texte"
    End Sub

    Déclarer la variable en Variant ou Object dans un premier temps puis une fois l'affectation réussie
    consulter la fenêtre des Variables locales en mode debug / pas à pas (cf tutoriel debug VBA) pour en connaitre le bon type …


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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/02/2011, 15h31
  2. Problème avec une liste déroulante
    Par flippaeti dans le forum C#
    Réponses: 1
    Dernier message: 05/06/2009, 19h46
  3. Problème avec une liste déroulante.
    Par kupae dans le forum IHM
    Réponses: 9
    Dernier message: 09/07/2008, 10h12
  4. problème avec une liste déroulante
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/05/2007, 09h01
  5. [Débutant] problème avec une liste déroulante
    Par stan21 dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 14h52

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