Imporation et modification page WEB

Encore merci

J'ai corrigé les deux erreurs comme me la dit steelson, mais maintenant j'ai une autre erreur d'execution n°5

"Argument ou appel de procédure incorrect"

Dans la partie

Function HTML(URL As String) As String
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", URL, False 
        .send
        HTML = .responseText
    End With
End Function

Open"GET", URL, False est surligné en jaune.

encore merci de votre aide.

je pense que cet autre fichier va t'amuser sur le fond et sur la forme (attention c'est du lourd!)

Pierre

Holà, un json, j'adore

mais là c'est vraiment du très très lourd ! je vais prendre une boite d'aspirine ...

omg

@Ldopa :

écrit plutôt :

Option Explicit

' ***********************************************************************
' *****                                                             *****
' *****        CODE PierreP56 : http://tatiak.canalblog.com/        *****
' *****                                                             *****
' ***********************************************************************

Sub Go()
    Lire Sheets("Liste_Courses_FFC").Range("A1").Value, 1
End Sub

Sub Lire(Site As String, Feuil As Byte)
Dim oHtml As New HTMLDocument
Dim Elem1 As Object, Elem2 As Object, Elem3 As Object
Dim lig As Long, col As Integer, S As Variant
Dim T As Variant

    oHtml.body.innerHTML = HTML(Site)
    lig = 1
    ReDim T(1 To 10, 1 To lig)
    For Each Elem1 In oHtml.getElementsByTagName("tr")
        lig = lig + 1
        ReDim Preserve T(1 To 10, 1 To lig)
            col = 0
            For Each Elem2 In Elem1.getElementsByTagName("td")
                col = col + 1
                T(col, lig) = Elem2.innerText
            Next Elem2
    Next Elem1

    T = Application.Transpose(T)
    Sheets("Liste_Courses_FFC").Range("A2:G1000").ClearContents
    Sheets("Liste_Courses_FFC").Range("A2").Resize(UBound(T, 1), UBound(T, 2)) = T

End Sub

Attention toutes les lignes ont un sens. La première ligneOption Explicit est toujours une bonne option.

@Steelson : j'étais sûr que ça allait t'amuser

Pierre

@Steelson : j'étais sûr que ça allait t'amuser

Pire que cela ! mes neurones sont très agités

La version xml existe aussi !

https://www.prevision-meteo.ch/services/xml/noirmoutier-en-l-Ile

mais au vu de sa longueur, elle doit contenir moins d'infos.

Super merci

J'ai plus qu'à mettre tout cela en forme.

A vous relire tous les deux.

Je marque le post comme résolu.

Encore merci

Bien Amicalement

Bernard

Bonsoir

Je reviens vers vous car j'ai trouver un problème.

Lors du chargement les certaines date sont modifiées mais pas toute.

merci d'avance pour votre aide.

Je suppose que c'est pour Pierre ...

C'est un classique enquiquinant ! les dates sont transformées en format US ou format FR selon la valeur des mois ... tant que cela n'atteint pas 13 !!

Je n'ai pas cette difficulté en chargeant par tableaux entier (mais onglet par onglet ... c'était un choix car je peux aussi tout rassembler sur un même onglet, mais Pierre a donné une solution). Je ne peux pas expliquer la différence de traitement du reste.

Il faut charger la date en mode texte et faire une transformation ensuite. Essaie de passer juste la colonne en format texte au lieu de [$-40C]jjj j mmm aaaa , cela devrait fonctionner.

Bonjour steelson

Merci beaucoup de ton aide cela fonctionne

J'avais essayé pas mal de choses mais pas le mode texte.

J'ai encore appris quelque chose.

A te relire

Bernard

Bonjour à tous,

En effet un classique.

Et merci à l'ami Steelson d'avoir apporté une solution.

Ceci dit, si ultérieurement on doit faire un traitement ou calcul sur les dates, le format texte est moins pratique.

Alors si besoin, on peut traduire la donnée date-texte en donnée date-numérique et mettre la colonne recevant les dates au format date que l'on souhaite.

Pour le cas de ce site les dates sont en colonne 1 du tableau web (et on doit exclure l'entête) :

        For Each Elem2 In Elem1.getElementsByTagName("td")
            col = col + 1
            If col = 1 And Not Elem2.innerText = "DATE" Then
                T(1, lig) = CLng(CDate(Elem2.innerText))
            Else
                T(col, lig) = Elem2.innerText
            End If
        Next Elem2

Pierre

@Steelson : j'étais sûr que ça allait t'amuser

Pire que cela ! mes neurones sont très agités

et comment cela m'a amusé ... j'ai donc pris la liberté d'adapter ton code

Merci Pierre

21meteo-no.xlsm (54.60 Ko)
Rechercher des sujets similaires à "imporation modification page web"