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 :

Extraire des données d'une page Web en VBA sous Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 23
    Points : 24
    Points
    24
    Par défaut Extraire des données d'une page Web en VBA sous Excel
    Bonjour a tous les membres et les lecteurs.

    Voila je travail sur un sujet de statistiques des offres d'emploi publiées sur un cite d'emploi. Mon probleme est d'éxtraire des données d'un tableau d'une page web et de les mettre dans une page excel.

    le tableau se presente en plusieures lignes (tout depend du nombre d'offres d'emploi lors de notre requette), et de 7 colonnes comme suit:

    Numero de l'offre|Appelation d'emploi |Employeur...........|Nombre de postes |niveau de scolarité|Années d'éxperience|Lieu de travail
    1025458...........|......Tolier.............|ABC Carosseries...|...........2.............|...... BEP Tolerie...|.........5................|..Dijon
    5218741...........|.....Cuisinier..........|..Resto chez Fred.|............1............|BEP Restauration..|.........8.................|..Paris 5
    4875111...........|.Chauffeur Camion..|Transport Europe.|............8............|...secondaire........|........3 a 6 ans.......|..Moselle
    ect..................|...........ect..........|.......ect.............|............ect.........| ..........ect..........|...........ect............|.......ect

    Pour chaque offre je doit copier tous les champs dans un tableau excel
    de plus le champ appelation d'emploi est un lien hypertexte et je doit le copier tel quel.

    Je ne sais pas si le probleme est bien posé. Si non est ce que vous pouvez me donner du code VBA pour lire touts les controles d'une page web (tableaux, boutons, cases a cocher, listes déroulantes, liens hypertexte).

    Actuellement avec le code du cite developpz.com http://excel.developpez.com/faq/?page=WebHtml
    j'arrive uniquement a ouvrir en VBA une page web, mais les controles les liens hypertext je me perd. Est ce qu'il ya de la documentation sur internet concernant VBA et Internet explorer, c'est un sujet qu'on aborde peux dans ce cite et sur tous les autres cites en géneral.

    Je vous remercie d'avance.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    Difficile de répondre sans voir la page Web.

    As tu essayé d'importer les données en utilisant la fonction Query :
    Menu Données
    Données externes
    Nouvelle requête sur le web
    ...

    Sinon dans le lien de la FAQ que tu indiquais dans ton message, regarde la qustion :
    'Comment extraire les données d'une table html ?'


    c'est un sujet qu'on aborde peux dans ce cite et sur tous les autres cites en géneral.
    Au contraire, c'est un sujet qui est souvent abordé comme tu pourra le constater en faisant une recherche par mot clé :
    internetExplorer.Application
    HTMLDocument


    bon après midi
    michel

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    je vous remerci de la réponse

    Pour le cite d'emploi je peut vous donner le lien.

    voici une des pages des offres d'emploi

    http://placement.emploiquebec.net/mb...=256&CL=french

    C'est vrai avec le lien que j'ai donné précedement je suis arrivé à éxtraire
    le contenu du tableau vers une table excel. Le probleme est dans la colonne appelation d'emploi, je veut un lien hypertexte comme dans le cite de l'emploi et non pas du texte.

    merci d'avance.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Le probleme est dans la colonne appelation d'emploi, je veut un lien hypertexte comme dans le cite de l'emploi et non pas du texte.
    Si tu testes un des liens manuellement tu constateras que le site n'autorise pas l'utilisation des liens directs vers une annonce :
    Veuillez utiliser uniquement les boutons d'action du site Placement en ligne pour naviguer dans l'application.

    Juste pour le fun, voici le résultat de la procédure qui crée les liens ... mais qui ne sert à rien ... ;o)

    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
    'Nécessite d 'activer les references
        'Microsoft HTML Objects Library
        'et
        'Microsoft Internet Controls
    Dim IE As InternetExplorer
    Dim maPageHtml As HTMLDocument
    Dim Htable As IHTMLElementCollection
    Dim maTable As IHTMLTable
    Dim j As Integer, i As Integer
    Dim Cible As String
     
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
     
    IE.navigate "http://nomdusite.fr"
        Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
     
    Set maPageHtml = IE.document
    'objet type table
    Set Htable = maPageHtml.getElementsByTagName("table")
    'premier tableau dans la page Web
    Set maTable = Htable(0)
     
    'boucle sur toutes les lignes du tableau
    For i = 1 To maTable.Rows.Length
        'boucle sur les cellules dans chaque ligne
        For j = 1 To maTable.Rows(i - 1).Cells.Length
     
            Cible = maTable.Rows(i - 1).Cells(j - 1).innerHTML
     
            If Left(Cible, 8) = "<A href=" Then
                ActiveSheet.Hyperlinks.Add Cells(i, j), Mid(Cible, 10, InStr(10, Cible, ">") - 11)
            Else
                Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText
            End If
        Next j
    Next i

    bonne soirée
    michel

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Je te remerci de ton aide.

    Dommage que ca ne marche pas.
    Je vais essayer avec d'autres cites ou il ya des tableaux avec liens hypertextes, et voir si ca marche.
    Par contre le code pour remplir les cellules excel à partir d'un tableau d'une page web me sera tres utile, fini le copier colé.

    Je doit me contenter de parcourir tous les liens de la page avec la propriété Links(), et les écrire sur le tableau excel à la colonne appropriée, ce qui n'est pas simple.

    Voici une ébauche du code. J'ai trouvé que le lien numéro 8 correspond à la prmiére offre d'emploi.
    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
     
    Sub DeclencherLienPageWeb()
        'nécessite d'activer les références
            'Microsoft HTML Objects Library
            'et
            'Microsoft Internet Controls
     
        Dim IE As internetExplorer
        Dim Cible As HTMLAnchorElement
        Dim Doc As HTMLDocument
     
        Set IE = New internetExplorer
        IE.Navigate "http://placement.emploiquebec.net/mbe/ut/rechroffr/listoffr.asp?mtcle=dessinateur&mtclep1=dessinateur&pp=1&date=3&prov=rechrcle%2Easp%3Fmtcle%3Ddessinateur%26mtclep1%3Ddessinateur%26pp%3D1%26prov%3Derechroffr%252Easp%26date%3D3%26creg%3D06%2B13%2B16&creg=06&CL=french"
        IE.Visible = True
     
        Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
        Loop
     
        Set Doc = IE.Document
     
        'Doc.Links(0) = 1er lien contenu dans la page html
        Set Cible = Doc.Links(8)
        Debug.print Cible
        Cible.Click
     
    End Sub

Discussions similaires

  1. Extraire des données d'une page web
    Par Meher001 dans le forum Général Dotnet
    Réponses: 14
    Dernier message: 07/03/2013, 16h13
  2. Comment Enregistrer Une page WEB En VBA sous excel
    Par BEMI dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/05/2009, 23h15
  3. [RegEx] Récupérer des données dans une page Web
    Par Pragmateek dans le forum Langage
    Réponses: 8
    Dernier message: 24/05/2006, 19h44
  4. Extraire des informations d'une page web
    Par lr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 28/03/2006, 12h38
  5. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38

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