Exemple de Base de Donnée Météo avec mise à jour auto

Bonjour à Tous et d'avance merci si vous pouvez me venir en aide.

Je suis tout nouveau sur le forum, même si je vais depuis longtemps sur ce site qui est très bien conçu.

Je suis technico-commercial, formateur informatique et utilisateur Office, Open ou Libre depuis longtemps,

Mais je n'ai pas pu répondre exactement au problème pratique que l'on m'a soumis.

Je n'ai pu donner que des indications. Je vous soumet donc la question et j'espère que vous pourrez m'apporter une réponse :

Je suis intervenu dans une entreprise ( de type Agricole ou Viticole) ou j'ai montré au personnel comment importer des données depuis le Web.

Bien qu'utilisateurs avancés , il ne connaissaient pas cette possibilité.

L'un des Ingénieur de production présent a été très intéressé par cette possibilité.

Car, dans le cadre de son travail, il a besoin journellement d'aller sur un site météo (météo France ou autre),

et de recopier TOUS LES JOURS les données sur son tableau Excel.

- Question : existe-t-il une possibilité pour récupérer les données météo, de façon automatique et quotidienne et de remplir le tableau Excel le jour "J" sans écraser les données précédentes ("J"-1). Idéalement, les données devraient être placées sous le tableau précédent

(donc sur la même feuille).

Je joint à titre d'exemple de tableau, non représentatif 'afin de vous donner une idée)

- J'ai répondu que je ne savais pas si cela était possible, 1° que l'on ne pourrais peut-être pas incrémenter la nouvelle table sur la même feuille, mais 2° peut-être sur une autre feuille. 3° Que si cette fonction existe d'origine sous Excel, je ne la connait pas, mais je ne pense pas.

4° Cela est peut-être possible, mais que je pensais plutôt à l'écriture d'un script en VBS.

Je ne suis pas très bon en programmation et je ne connait pas le VBS, donc je m'en remet à vous. Si quelqu'un a une idée, je lui en serai très reconnaissant.

Le délai est assez court, l'idéal serait si possible de m'apporter une réponse demain, car je revoit ces personnes jeudi.

Si la solution est un script VBS, merci de bien me donner tous les détails afin de permettre une implémentation simple.

Encore merci d'avance - Très cordialement.

Michel

Bonjour,

- Question : existe-t-il une possibilité pour récupérer les données météo, de façon automatique et quotidienne et de remplir le tableau Excel le jour "J" sans écraser les données précédentes ("J"-1). Idéalement, les données devraient être placées sous le tableau précédent

(donc sur la même feuille).

Oui, mais ce n'est pas forcément simple et voire difficile. Tout dépend déjà de l'endroit où il faut récupérer les données : plusieurs pages web ?, agencement des pages en HTML, exécution de scripts java, … En général, il faut décoder la page HTML via ses balises.

Hors le processus de récupération, il faut également développer une procédure pour "remplir le tableau Excel le jour "J" sans écraser les données précédentes ("J"-1)".

Une belle application.

Bonjour,

Mes compétences dans le domaine sont limitées (voire inexistantes), mais il est possible de trouver des API permettant de faire des exports de données météo, que l'on peut ensuite récupérer sous Excel.

Le site : https://www.wunderground.com propose des API il me semble... (EDIT : ce site n'en propose plus directement, autant pour moi, mais on trouve plusieurs résultats potentiellement intéressants en tapant API météo ou API weather sur Google...)

Bonjour,

Effectivement par exemple, le site de l'association "infoclimat" présente une possibilité intéressante car il propose après navigation sur leur site de récupérer un fichier .csv importable sous Excel

https://www.infoclimat.fr/previsions-meteo-par-ville.html

1- choisir la ville

2- cliquer sur API

Après, il faut programmer :

1- le processus de récupération : choix de la ville, navigation sur le site, téléchargement du fichier .csv et importation

2- le processus de mise à jour du classeur Excel contenant les données météo

Une belle application en perspective.

J'ai tenté d'écrire un petit programme pour :

  • Télécharger un fichier grâce à l'URL de l'API
  • Ouvrir ce fichier dans Excel
  • Le mettre en forme
  • Le copier à la suite dans un classeur d'import
  • Fermer et supprimer le CSV

Je n'ai pas pu le tester, il faut me redire s'il ne fonctionne pas correctement.

Le code suivant est à coller dans un module standard de l'éditeur VBA (alt + F11 pour y accéder).

Sub Import()

Dim Lig As Long, WBdest As Workbook, WBsource As Workbook, NomFichier As String, Lien As String

Lien = "http://www.infoclimat.fr/public-api/gfs/csv...blablabla" 'Lien API météo (exemple tronqué, lien à adapter sur le site et copier ici)
Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url " & Lien) 'Lance Chrome et ouvre le lien

Set WBdest = ThisWorkbook 'Affecte le classeur à la variable WBdest
Lig = WBdest.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row + 1 'Détermination de la première ligne vierge de la BDD
NomFichier = "C:\Users\TonNom\Downloads\previsions.csv" 'Chemin du fichier à importer

Set WBsource = Workbooks.Open(NomFichier) 'Ouverture du fichier à importer
With WBsource.Sheets(1)
    .Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, Comma:=True 'Converti les données
    .Rows("1:4").Delete Shift:=xlUp 'Suppression des 4 premières lignes
    .Range("A1").CurrentRegion.Copy 'Copie les données
    WBdest.Sheets(1).Range("A" & Lig).PasteSpecial Transpose:=True 'Transpose les données au moment du collage
    Application.CutCopyMode = False
End With
WBsource.Close False 'Fermeture du fichier
Kill NomFichier 'Suppression du fichier CSV
WBdest.Sheets(1).Rows(Lig).Delete 'Suppression de la ligne d'en-tête

End Sub

Bonjour Pedro22,

Une simple ouverture du fichier .csv ne fonctionnera pas car le séparateur est ",'. Il faut passer par une importation ( With ActiveSheet.QueryTables.Add(Connection:= _) qui permettra de bien insérer les données dans des colonnes séparées.

Pour le téléchargement du fichier , il faut passer par une API Windows ou la bibliothèque Microsoft.XMLHTTP.

Voir mes réponses dans ce post : https://forum.excel-pratique.com/viewtopic.php?f=2&t=116344

De plus, il faut pouvoir affecter la ville, ce qui nécessite certainement une navigation sans doute via des API Windows.

Bonjour Pedro22,

Une simple ouverture du fichier .csv ne fonctionnera pas car le séparateur est ",'. Il faut passer par une importation ( With ActiveSheet.QueryTables.Add(Connection:= _) qui permettra de bien insérer les données dans des colonnes séparées.

Pour le téléchargement du fichier , il faut passer par une API Windows ou la bibliothèque Microsoft.XMLHTTP.

Voir mes réponses dans ce post : https://forum.excel-pratique.com/viewtopic.php?f=2&t=116344

De plus, il faut pouvoir affecter la ville, ce qui nécessite certainement une navigation sans doute via des API Windows.

Pour l'ouverture du fichier, je fais fonctionner un code similaire qui me permet d'ouvrir une série de fichiers, y compris CSV (mais qu'il faut ensuite convertir pour séparer les colonne selon le bon séparateur).

J'ai aussi testé le lien fourni sur le site, et l'instruction Shell dans ma macro permet bien de télécharger le fichier CSV correspondant à la ville, que j'ai au préalable paramétrée sur le site (le lien comporte les coordonnées GPS de la station). Effectivement, si la ville est amenée à changer fréquemment, la méthode n'est pas bonne.

J'ai supprimé le lien complet car il correspond à mon identifiant, que je souhaite garder pour moi !

Pour l'ouverture du fichier, je fais fonctionner un code similaire qui me permet d'ouvrir une série de fichiers, y compris CSV (mais qu'il faut ensuite convertir pour séparer les colonne selon le bon séparateur).

C'est effectivement une autre façon de procéder.

l'instruction Shell dans ma macro permet bien de télécharger le fichier CSV correspondant à la ville

Oui cela donne la fenêtre de téléchargement mais çà ne lance pas le téléchargement.

Bonjour,

j'ai trouvé ça :

https://www.data.gouv.fr/fr/datasets/reseau-de-balises-et-donnees-meteo-de-la-ffvl/

les relevés (le réel donc, et non une prévision) mis à jour toutes les 20 min, avec un historique de 72h

Par contre il n'a pas l'air d'y avoir beaucoup de balises, 1 par département en gros

Je vous laisse faire, je ne suis pas un pro des bases en ligne

eric

l'instruction Shell dans ma macro permet bien de télécharger le fichier CSV correspondant à la ville

Oui cela donne la fenêtre de téléchargement mais çà ne lance pas le téléchargement.

[/quote]

Ca doit être les paramètres de mon navigateur, moi le téléchargement se lance automatiquement à l'ouverture de la page.

Ca doit être les paramètres de mon navigateur, moi le téléchargement se lance automatiquement à l'ouverture de la page.

Au niveau du code VBA, je ne suis pas certain que même dans ce cas, l'exécution soit suspendue jusqu'à complétude du téléchargement.

Par ailleurs, je pense que le lien de téléchargement est variable selon la période de prévision.

Je vous salut TOUS,

Je vous remercie de vous être interessé à ma question

et d'avoir apporté toutes ces réponses.

Je ne pensais pas obtenir des réponses si rapidement.

Je vais soumettre toutes vos réponses demain à la personne concernée.

De son coté il doit examiner les faisabilité avec l'informaticien de la boîte.

Je leur laisserai ensuite le soin d'examiner et de tester vos exemples

et je ne manquerai pas de vous tenir au courant.

Bonne soirée à tous

Encore un grand merci

Michel

PS : Je ne clique pas encore sur "Validation", car je ne sais pas encore si le problème est résolu

[quote="Michel EUS" post_id=706588 time=1542217444 user_id=59254]

Je vous salut TOUS,

Je vous remercie de vous être interessé à ma question

et d'avoir apporté toutes ces réponses.

Je ne pensais pas obtenir des réponses si rapidement.

Je vais soumettre toutes vos réponses demain à la personne concernée.

De son coté il doit examiner les faisabilité avec l'informaticien de la boîte.

Je leur laisserai ensuite le soin d'examiner et de tester vos exemples

et je ne manquerai pas de vous tenir au courant.

Bonne soirée à tous

Encore un grand merci[

Michel

PS : Je ne clique pas encore sur "Validation", car je ne sais pas encore si le problème est résolu

[/quote]

Bonjour à Tous,

Je pense que vous m'avez donner des pistes intéressantes concernant ce sujet.

Je l'ai transmis à la personne qui me l'a posé.

Je peux maintenant clore ce sujet

Encore merci à Thev, Pedro 22 et eriiic pour leur aide.

Bonne journée à tous

Michel

Bonjour et merci de ton retour !

Rechercher des sujets similaires à "exemple base donnee meteo mise jour auto"