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

Trier par : Les plus récents
  1. 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
  2. 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
  3. Anonyme
    2015-10-22T10:37:58+00:00

    Au lieu de "Input", utilise plutôt "Line Input" :

    Line Input #1, laligne

    Daniel

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

    0 commentaires Aucun commentaire
  4. Anonyme
    2015-10-22T09:12:55+00:00

    Bonjour Daniel

    La syntaxe de la fonction "Input" est la suivante :
    https://msdn.microsoft.com/fr-fr/library/office/gg251539.aspx

    Pas de souci chez moi (O2010/w7) avec la macro une fois tout déclaré.
    Mais je doute que le résultat soit ce qui est souhaité.

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

    0 commentaires Aucun commentaire