Lire des donnees sur le web

Bonjour,

Grâce à l'aide de d3d9x (un immense merci à lui), j'ai pu lire des données sur une page web.

Aujourd'hui, encore une fois, je dois me procurer des données officielles et les traiter avec Excel. En fait, je dois récupérer les données du tableau avec Janvier, Février etc sur la page suivante : http://www.cnr.fr/Indices-Statistiques/Espace-Gazole/Indicateurs-Gazole-France/Prix-CNR-gazole-cuve-moy.-mens#haut

Mon code ressemble à ça (entièrement copié sur d3d9x) :

Sub extraction()

On Error GoTo sortie:
Dim url As String: url = "http://www.cnr.fr/Indices-Statistiques/Espace-Gazole/Indicateurs-Gazole-France/Prix-CNR-gazole-cuve-moy.-mens#haut"
Dim element As Object, souselement As Object

Dim IEDoc As HTMLDocument
Dim IE As New InternetExplorer

IE.navigate url
IE.VISIBLE = True

Do While IE.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

Set IEDoc = IE.document
Set element = IEDoc.getElementsByTagName("tbody").Item(0)

Dim numLigne As Integer, numColonne As Integer

For numLigne = 0 To element.Children.Length - 1
    Debug.Print numLigne
    Set souselement = element.Children.Item(numLigne)
    For numColonne = 0 To souselement.Children.Length - 1
        Cells(numLigne + 1, numColonne + 1).Value = souselement.Children.Item(numColonne).innerText
    Next numColonne
Next numLigne

'libération de la mémoire
Set IEDoc = Nothing
IE.Quit
Set IE = Nothing
MsgBox "terminé sans erreur"
Exit Sub

sortie:
Set IEDoc = Nothing
IE.Quit
Set IE = Nothing
MsgBox "Erreur. Vérifiez votre connexion à Internet"
End Sub

Cependant, si on l'essaye sur un fichier excel, on se retrouve avec quelques données certes mais mal organisées en un seule ligne et en plus les données commencent à partir de Juin 2011.

Je ne connais vraiment que très peu le JavaScript, c'est la raison pour laquelle je pense que le code ne fonctionne pas bien car la notion de parent etc n'est pas respectée.

Merci d'avance si vous pouvez m'apporter votre aide.

Fichier test en PJ.

Cordialement.

24bbre.xlsx (12.65 Ko)

Bonjour.

Tu cherches à obtenir un truc du genre ? Ou j'ai mal cerné le problème ?

Bonne journée.

Bonjour Kuartz,

Pourquoi ne pas simplement importer des données web (onglet Données)

Voici l'import par code VBA (feuille 2)

Edit : oups, bonjour Elhevan, je vois que nous avons eu la même idée

A+

Bonjour,

J'ai vraiment mal de voir que c'était aussi simple quand-même....

.WebTables = "4"

Vous avez utilisé l'enregistreur de macro pour importer la page HTML en fait?

Et comment sait-on que la valeur de Webtables est 4?

Merci en tout cas c'est ce que je cherchais c'est vraiment sympa de m'avoir aidé.

Cordialement.

Pas besoin d'aller chercher dans les macros.

Données > à partir du web > renseigner l'adresse > cliquer sur la flèche sur fond jaune en face du tableau voulu > Importer

Pour mettre à jour Données > actualiser tout

Les grands esprits se rencontrent BrunoM45

Re,

Comme le dit Elhevan, pas besoin de code VBA pour ce genre d'import,

puisse que ta requête est créée il y a juste à l'actualiser

Mais perso, je trouvais ça plus fun

Effectivement j'ai utilisé l'enregistreur de macro et remanié le code

A+

Tout ça pour embêter les gens et les obliger à accepter les macros de ton fichier

Bonjour,

C'est vraiment parfait, je ne savais pas que je pouvais choisir le tableau voulu en cliquant sur la flèche jaune en face

Ca va un peu plus loin que d'embêter les gens et les obliger à accepter les macros. En réalité, j'ai besoin qu'à chaque ouverture du fichier, l'import se fasse. Ensuite je vais retraiter les données afin de générer plusieurs PDF envoyés automatiquement par mail à chaque personne concernée. Il faut donc que l'ouverture du fichier avec l'import et l'envoi par mail se fasse le premier de chaque mois. Je vais donc utiliser le planificateur de tâches sur un serveur. Mais tout ça, je sais le faire, je n'avais juste jamais fait d'import Web.

Merci beaucoup à tous.

Cordialement.

Pour l'actualisation à l'ouverture :

Données > Connexion > Le nom de celle que tu veux > propriétés > Actualiser les données lors de l'ouverture du fichier.

Génial ! Merci, plus besoin de macro

Rechercher des sujets similaires à "lire donnees web"