rapatrier le code source html en VBA

Anonyme
2015-10-22T03:25:26+00:00

Bonjour

Cette routine fonctionnait correctement sous XP et depuis que je suis  sous W8.1 elle ne fonctionne plus. J'ai déjà posé cette question il y a quelque temps, si il y a du nouveau à ce propos; bien aimable de me tenir au courant. Merci

Sub CherchecodeSource()

    Dim CodeSource As String, IE As Object

    Dim TempFile As String

    On Error Resume Next

    Feuil10.[A:A].ClearContents

    Set IE = CreateObject("InternetExplorer.application")

    TempFile = "c:\Fred.txt"

    IE.Visible = False    ' Ou True

    IE.navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"

    Do Until IE.ReadyState = 4

        DoEvents  ' soit la boucle ne sort pas, soit elle sort et "Laligne" est vide dans la boucle suivante

    Loop

    CodeSource = IE.document.body.innerHTML

    Open TempFile For Output As #1

    Print #1, CodeSource

    Close #1

    Open TempFile For Input As #1

    Do While Not EOF(1)

        Input #1, LaLigne

        a = a + 1

        Feuil10.Range("A" & a) = LaLigne

        If a > 20 And Application.CountA([IDcours!A:A]) = 0 Then

            Exit Do

        End If

    Loop

    Close #1

    Kill TempFile

    IE.Quit

    Set IE = Nothing

End Sub

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2015-10-26T07:50:38+00:00

Bonjour

Comme je l'ai indiqué le code tourne avec Office 2010 et IE11/w7.

Par contre on récupère du texte html et non les valeurs qui vous intéressent.

Je ne peux pas aller plus loin n'ayant plus ni IE8, ni Excel 2007.

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

22 réponses supplémentaires

  1. Anonyme
    2015-10-26T11:48:47+00:00

    Bonjour,

    C'est vrai que le temps de connexion est long. Est-ce que tu as coché la référence "Microsoft Internet Coltrols" ? Voici ce que j'obtiens avec Excel 2007 et Windows 10 :

    Internet Explorer est hors de cause, j'utilise Chrome.

    J'obtiens le résultat suivant :

    https://onedrive.live.com/redir?resid=96D5842B14D14FA4!7046&authkey=!AEc0VHVs8s9Js44&ithint=file%2cxlsx

    Est-ce que tu peux poster un exemple du résultat souhaité.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2015-10-26T07:35:23+00:00

    Bonjour

    Un minimum d'explications donnerait peut-être envie de regarder.

    Qu'est-ce qui "ne marche pas" ?

    version Office

    version IE.

    Bonjour le Tourangeau

    Ce qui ne marche pas est dans le Rem du code publié en haut du tread.

    La version IE est 11; Office comme indiquée est 2007.

    Avec ce  code  VBA  sur XP et IE8, aucun problème.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2015-10-26T07:28:56+00:00

    Bonjour Daniel

    Désolé pour le résultat, il est négatif, avec ton bout de code, j'ai bien eu des lignes remplies qui comportaient les valeurs recherchées mais pas suffisamment en nombre et, le temps à attendre du passage à "Vrai" de la 1ère boucle est trop long. je pencherais pour la relation entre IE11 et office 2007 qui ne serait pas au point, la cause de l'échec ( c'est une intuition).

    Bonne chance si le sujet te passionne

    à+

    Fred

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2015-10-22T11:44:41+00:00

    Effectivement, ton code fonctionne avec Excel 2007. Tu obtiens le même résultat avec :

    Sub CherchecodeSource2() <br><br>    Dim CodeSource As String, IE As Object <br><br>    Dim Ligne As Long <br><br>    On Error Resume Next <br><br>    Feuil10.[A:A].ClearContents <br><br>    Set IE = CreateObject("InternetExplorer.application") <br><br>    IE.Visible = False    ' Ou True <br><br>    IE.navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow" <br><br>    Do Until IE.ReadyState = 4 <br><br>        DoEvents  ' soit la boucle ne sort pas, soit elle sort et "Laligne" est vide dans la boucle suivante <br><br>    Loop <br><br>    CodeSource = IE.document.body.innerHTML <br><br>    tabl = Split(CodeSource, ",") <br><br>    For Each Item In tabl <br><br>        Ligne = Ligne + 1 <br><br>        Feuil10.Cells(Ligne, 1) = Item <br><br>    Next Item <br><br>    IE.Quit <br><br>    Set IE = Nothing <br><br>End Sub

    A Vérifier.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire