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 :

[E-03] importer des données internet sur excel - référence Microsoft Internet Control


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Points : 29
    Points
    29
    Par défaut [E-03] importer des données internet sur excel - référence Microsoft Internet Control
    Bonjour à tous,

    Je souhaite importer des données depuis un site web comme boursorama dans un fichier excel. J'ai fait quelques recherches sur le forum et j'ai trouvé le code suivant :

    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
     
    Sub Importer_tableauPageWeb()
        'Nécessite d'activer les références:
            '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
     
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
     
     
        IE.navigate "http://www.mapageperso.html"
            'Attend la fin du chargement pour continuer la procédure
            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
                'Transfert les données dans la feuille de calcul
                Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText
            Next j
        Next i
     
        IE.Quit
        Set IE = Nothing
     
    End Sub
    J'ai bien activé la référence HTML mais je ne trouve pas "Microsoft Internet Controls". (je suis sous Excel 2003 comme dit dans le titre)
    Du coup le code ne donne rien.
    Quelqu'un aurait-il la solution ou du moins une piste?
    Merci d'avance,

    Question subsidiaire : que faut-il changer dans le code pour utiliser Mozilla?

  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 147
    Points
    20 147
    Par défaut
    bonsoir

    je ne trouve pas "Microsoft Internet Controls".
    Quelle version d'internet explorer utilises tu ?


    bonne soirée
    michel

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Points : 29
    Points
    29
    Par défaut
    Bonjour SilkyRoad,

    j'utilise IE 7.0 (version du boulot, je n'ai pas les droits d'admin sur cet ordi)

    Bonne matinée

  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 147
    Points
    20 147
    Par défaut
    bonjour


    Sans garantie (et qui n'expliquera pas pourquoi tu ne trouves pas la bibliothèque), fait un essai en remplaçant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim IE As InternetExplorer
    par



    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until IE.readyState = READYSTATE_COMPLETE
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until IE.readyState = 4


    bonne journée
    michel

  5. #5
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour,

    Si tu ne trouves pas la référence Microsoft Internet Controls, tu peux cliquer sur Parcourir dans la fenêtre des références et la trouver c:\Windows\System32\ieframe.dll.

    Cordialement

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Points : 29
    Points
    29
    Par défaut
    Bonjour SilkyRoad, bonjour fred65200,

    merci pour vos réponses, je viens de tester la proposition de SilkyRoad et ça marche!
    Voici donc un exemple de code qui fonctionne bien, il est nécessaire d'activer "Microsoft HTML objects Library", mais pas "Microsoft Internet Controls" :

    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
     
    Sub Importer_tableauPageWeb_v2()
        'Nécessite d'activer les références:
            'Microsoft HTML Objects Library
     
        Dim IE As Object
        Dim maPageHtml As HTMLDocument
        Dim Htable As IHTMLElementCollection
        Dim maTable As IHTMLTable
        Dim j As Integer, i As Integer
     
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
     
     
        IE.navigate "http://www.boursorama.com/tableaux/cours_az.phtml?MARCHE=1rPCAC"
            'Attend la fin du chargement pour continuer la procédure
            Do Until IE.readyState = 4
            DoEvents
        Loop
     
        Set maPageHtml = IE.document
        'objet type table
        Set Htable = maPageHtml.getElementsByTagName("table")
        '3ème tableau dans la page Web ("0" est le premier tableau)
        Set maTable = Htable(2)
     
        '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
                'Transfert les données dans la feuille de calcul
                Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText
            Next j
        Next i
     
        IE.Quit
        Set IE = Nothing
     
    End Sub
    edit : je viens de rentrer chez moi et le même code ne fonctionne plus sur mon ordi perso. il bug à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until IE.readyState = READYSTATE_COMPLETE
    et idem avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until IE.readyState = 4
    je precise que je suis cette fois sur vista alors que je suis sur XP au boulot. Dois-je faire des réglages supplémentaires?

    Merci encore pour votre précieuse aide et bonne journée à tous!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Points : 29
    Points
    29
    Par défaut
    Pas de réponses par rapport à la dernière question? (pourquoi le même code marche-t-il sous xp et pas sous Vista)
    Bon je clique quand même résolu parce que le problème initial a été résolu (merci d'ailleurs )

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/06/2013, 15h39
  2. importer des données web sur excel
    Par irouni dans le forum Excel
    Réponses: 3
    Dernier message: 18/12/2007, 11h12
  3. comment importer des données bo sur excel
    Par Gecl.paris dans le forum Deski
    Réponses: 1
    Dernier message: 12/02/2007, 10h54
  4. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35
  5. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 14h38

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