Requête sur le WEB

Bonjour forum,

je fais encore appel à vos précieux conseils sur un sujet peu traité sur le forum et, ça concerne une macro qui va chercher des données sur le WEB. Grâce à un tutoriel, j'ai appris les rudiments mais il y a encore des facettes qure ne maitrise pas. En gros, je veux enregistrer des données climatiques présents sur le site suivant:

http://www.mddelcc.gouv.qc.ca/climat/donnees/OQtableau.asp?date_selection=

Lorsqu'aucune date n'est inscrite à la fin du URL, la date actuelle est choisie, sinon en spécifiant une date après le "=" on obtient les données pour la date indiquée.

J'ai débuté une macro qui va chercher les données d'une date précise que je dépose dans un feuillet temporaire dont je retiendrai ultérieurement les données pertinentes:

Sub Collecte_MDDEP()
'
' Collecte_les données climatiquues du réseau provincial du Québec
'
Sheets("Temp").Cells.Clear  'Requête page WEB, auparavant, on nettoie le feuillet: "Temp"

With Sheets("Temp").QueryTables.Add(Connection:= _
    "URL;http://www.mddelcc.gouv.qc.ca/climat/donnees/OQtableau.asp?date_selection=2016-07-31#bis", _
    Destination:=Sheets("Temp").Range("$A$1"))
    .Name = "#bis"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = False
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingAll
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With

End Sub

Actuellement, la macro se limite à une seule requête de 1 jours (2016-07-31). Toutefois, est-il possible avec une boucle d'aller chercher les données sur plusieurs jours (disons un mois par exemple). J'ai tenté avec une variable dans le URL mais ça ne semble pas fonctionner! Quelqu'un aurait une idée?

Je fournis le fichier mais j'ai supprimé les données dans le feuillet: "Temp" afin de l'alléger.

17collect-mddep.xlsm (45.50 Ko)

Emil

Bonjour,

Ci-joint une proposition à tester.

Principe :

  • boucle sur les dates
  • requête sur le WEB avec cette date (reprise du fonctionnement actuel)
  • ajout des données dans l'onglet "Donnees"

Dans l'exemple, données récupérées sur 3 jours. C'est long !

Bonne journée

Bouben

Bonjour,

Excellent! J'en apprend un peu plus à chaque fois. Et les résultats vont au-delà de mes attentes.

En pratique, les données qui m'intéressent se limitent à la pluie et la neige.

Ainsi, je prévoyais créer ultérieurement 2 feuillets pour chaque type de précipitations et arranger les données selon le format indiqué dans le fichier ci-joint.

Ici, j'entrevois une difficulté à surmonter car la liste des stations disponibles peut changer quelque peu avec le temps.

Si vous avez des suggestions ou solutions, elles sont bienvenues

Un gros merci!

Emil

Bonjour,

Possible d'ajouter automatiquement les stations qui manquent, au fur et à mesure. Je regarde !

Et pour la ventilation pluie/neige, c'est jouable sans trop de modif ...

A plus

Bouben

Bonsoir,

Ci-joint une nouvelle version à tester.

Les modifications :

  • 1 onglet pluie, 1 onglet neige
  • villes en ligne, dates en colonnes
  • si pour un nouveau jour, une nouvelle ville est identifiée, on ajoute une ligne complémentaire avec cette ville
  • sinon, on va écrire dans la bonne ligne (recherche de la ligne correspondant à la ville)
  • lorsqu'une ville est ajoutée, les jours pour lesquels cette ville n'avait pas de donnée sont en fond gris (MFC)
  • si une date a déjà été importée, on vide la colonne et on réimporte

Tests faits avec des périodes aléatoires, la gestion des ville a l'air OK.

Reste un point, il faudrait re-trier les villes par ordre alphabétique (assez simple) et les dates par ordre chronologique (plus difficile, Excel n'a pas encore inventé le tri vertical ).

Actuellement, une nouvelle date importée est ajoutée à droite, indépendamment de l'échelle du temps

Disons qu'il n'y a qu'à faire les imports dans l'ordre

Et un point important : les 2 onglets Pluie/Neige sont traités simultanément. Donc ne pas modifier un onglet sans l'autre.

Exemple : ajout d'une ligne de titre dans l'onglet Neige et pas dans Pluie, le traitement va se perdre.

Idem si insertion de colonne, de ligne, etc

Bref, ces onglets ne bougent pas

Si chacun doit vivre sa vie, je modifie le traitement pour éviter tout erreur.

Bouben

Bonjour (ou plutôt bonsoir),

j'ai éprouvé la dernière macro sur un mois et j'ai ensuite comparé quelques résultats des tableaux avec des données en ligne et, tout semble concorder de façon impeccable. Il est aussi intéressant de voir que les données de nouvelles stations sont mises en évidence (et vice et versa lorsqu'une station disparait, les cellules deviennent grises). Encore une fois, ça dépasse mes attentes.

Merci encore

Emil

Rechercher des sujets similaires à "requete web"