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 :

Extraction d'infos HTML depuis VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut Extraction d'infos HTML depuis VBA
    Bonjour,

    J'essaye depuis quelques heures de récupérer des informations d'une page HTML depuis VBA.
    J'ai beau suivre (le tuto de Qwazerty), j'ai un cas de figure que je ne trouve pas, et que je n'arrive pas à solutionner.

    Mon HTML se présente comme ça :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <li>
    	<span class="label">Age:</span> 
    	74 years old
    </li>
    <li>
    	<span class="label">Birthdate:</span>
    	April 25th 1940
    </li>

    J'arrive bien a extraire Age, grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Age = (Docu.getElementsByClassName("label")(4).innerText)  '(4) car il se trouve que "label" existe déjà plusieures fois dans la liste.
    mais je n'arrive pas à extraire "74"

    L'idée serait de chercher directement "Age:", mais je ne trouve pas la méthode (et encore moins celle qui me donnera : "74")

  2. #2
    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,

    il suffit juste de créer une variable soit sur le document soit sur un élément
    puis de vérifier sa structure dans la fenêtre des Variables locales

    Le parent du Label Age contient le texte voulu dans sa propriété innerText.
    Sinon, comme indiqué dans le tutoriel, chercher dans la collection des éléments li

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut
    Bonjour Marc-L et merci pour la réponse.

    Je ne comprends pas trop. Il faut que je modifie le document HTML ?
    Or il ne m'appartient pas, et est issu d'Internet.

  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





    Non, c'est de la lecture uniquement comme dans le tutoriel, juste pointer un élément via une variable,
    relire mon précédent message …


  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 99
    Par défaut
    Avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set htmlTagCol = IEDoc.getElementsByTagName("li")
    MaVal = htmlTagCol(i).innerText 'i est le numéro de l’élément recherché
    J'arrive à récupérer le texte désiré.
    J'ai juste à faire une manipulation de chaîne de caractère pour l'adapter à mes besoins.

    Par contre, y a t'il une manière plus facile de trouver le texte? En tapant par exemple "Age:" quelque part ?
    Ça éviterait déjà de faire un tri sur les différents éléments.

    Merci.

  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

    Non car "Age:" n'est pas dans le même élément …

    L'autre voie serait de ne pas piloter IE mais de récupérer le code source de la page
    via une requête (VBA et développement Web) puis d'utiliser les fonctions de texte internes au VBA

    Voir les exemples dans les discussions de ce forum, effectuer une recherche sur CreateObject("Microsoft.XMLHTTP"),
    CreateObject("MSXML2.XMLHTTP") et CreateObject("WinHttp.WinHttpRequest.5.1")

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

Discussions similaires

  1. [XL-2007] Exécuter un clique sur page HTML depuis VBA excel
    Par Debutant10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/10/2012, 23h31
  2. Hooker un thread html depuis vba
    Par Gorzyne dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/10/2012, 15h46
  3. Réponses: 4
    Dernier message: 21/04/2005, 16h07
  4. [Forms9i]Ouvrir une page HTML depuis forms
    Par benjamin50 dans le forum Forms
    Réponses: 13
    Dernier message: 17/03/2005, 16h54
  5. [web] lancer page HTML depuis un script perl
    Par lilou0210 dans le forum Web
    Réponses: 7
    Dernier message: 05/11/2004, 16h04

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