Obtenir de données Í  partir du Web (option?)

Le
Emile63
Bonjour Í  tous,

Je récupère journalièrement plusieurs valeurs sur internet (notamment: https://price.metal.com/Chromium) dans un classeur Excel par le biais d' "Obtenir des données -> A partir du web" une exécution que j'ai automatisé par une procédure vba exécutée a l'ouverture du classeur.

Malheureusement, la page susmentionnée Í  beaucoup de peine Í  s'actualiser (par rapport Í  d'autre données relevées sur d'autre sites avec la même procédure et sur lesquels il n'y a aucun problème) 8 x sur 10 elle ne s'actualise pas. :-(
Par-contre si préalablement j'ouvre la page dans le browser (Chrome) et qu'ensuite j'actualise manuellement la requête Excel, (données-> Actualiser), alors ma feuille s'actualise.
Je n'ai pas trouvé sur le Net d'autres pages (gratuites) qui pourraient substituer celle-ci, j'aimerais donc savoir si j'ai la possibilité de jouer avec des paramètres de la requête pour parer Í  ce problème, j'ajouterai que je ne maÍ®trise que basiquement les requêtes et le Powerquery, mais s'il y a parmi vous un spécialiste pourrait m'éclairer Í  propos de mon problème et m'indiquer comment y remédier, éventuellement au travers de :

- L'éditeur "Power Query
Ou des -Paramètres de la source de données
comme, changer la source, les délai de commande (en minutes)
ou les paramètres de l'entête de la requête, ou ajouter un entête ou modifier/ajouter les autorisations

Je vous remercie d'avance pour votre aide.
Très bonne journée.
  • Partager ce contenu :
Vos réponses Page 1 / 2
Trier par : date / pertinence
MichD
Le #26560347
Le 19/11/20 Í  05:01, Emile63 a écrit :
Bonjour Í  tous,
Je récupère journalièrement plusieurs valeurs sur internet (notamment: https://price.metal.com/Chromium) dans un classeur Excel par le biais d' "Obtenir des données -> A partir du web" une exécution que j'ai automatisé par une procédure vba exécutée a l'ouverture du classeur.
Malheureusement, la page susmentionnée Í  beaucoup de peine Í  s'actualiser (par rapport Í  d'autre données relevées sur d'autre sites avec la même procédure et sur lesquels il n'y a aucun problème) 8 x sur 10 elle ne s'actualise pas. :-(
Par-contre si préalablement j'ouvre la page dans le browser (Chrome) et qu'ensuite j'actualise manuellement la requête Excel, (données-> Actualiser), alors ma feuille s'actualise.
Je n'ai pas trouvé sur le Net d'autres pages (gratuites) qui pourraient substituer celle-ci, j'aimerais donc savoir si j'ai la possibilité de jouer avec des paramètres de la requête pour parer Í  ce problème, j'ajouterai que je ne maÍ®trise que basiquement les requêtes et le Powerquery, mais s'il y a parmi vous un spécialiste pourrait m'éclairer Í  propos de mon problème et m'indiquer comment y remédier, éventuellement au travers de :
- L'éditeur "Power Query
Ou des -Paramètres de la source de données
comme, changer la source, les délai de commande (en minutes)
ou les paramètres de l'entête de la requête, ou ajouter un entête ou modifier/ajouter les autorisations
Je vous remercie d'avance pour votre aide.
Très bonne journée.


Bonjour,
Je ne connais pas "Power Query" et il n'est pas installé sur mon ordinateur.
Je te propose ceci :
Ouvre le site Web dans une fenêtre non visible et appelle ta macro de
mise Í  jour. L'ouverture va prendre quelques secondes de plus, mais cela
devrait fonctionner...
Í  mettre dans le Thisworkbook du classeur.
'--------------------------------------
Private Sub Workbook_Open()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("https://price.metal.com/")
'False pour que la fenêtre ne soit pas visible
IE.Visible = True
Do While IE.ReadyState <> 4
Loop
'Appelle de ta procédure qui met Í  jour tes données
'procédure "Mise_Í _Jour" dans un module standard
Call Mise_Í _Jour
'Ferme l'application
IE.Quit
End Sub
'--------------------------------------
MichD
Emile63
Le #26561690
Le Thursday, November 19, 2020 Í  1:22:13 PM UTC+1, MichD a écrit :
Le 19/11/20 Í  05:01, Emile63 a écrit :
Bonjour Í  tous,
Je récupère journalièrement plusieurs valeurs sur internet (notamment: https://price.metal.com/Chromium) dans un classeur Excel par le biais d' "Obtenir des données -> A partir du web" une exécution que j'ai automatisé par une procédure vba exécutée a l'ouverture du classeur.
Malheureusement, la page susmentionnée Í  beaucoup de peine Í  s'actualiser (par rapport Í  d'autre données relevées sur d'autre sites avec la même procédure et sur lesquels il n'y a aucun problème) 8 x sur 10 elle ne s'actualise pas. :-(
Par-contre si préalablement j'ouvre la page dans le browser (Chrome) et qu'ensuite j'actualise manuellement la requête Excel, (données-> Actualiser), alors ma feuille s'actualise.
Je n'ai pas trouvé sur le Net d'autres pages (gratuites) qui pourraient substituer celle-ci, j'aimerais donc savoir si j'ai la possibilité de jouer avec des paramètres de la requête pour parer Í  ce problème, j'ajouterai que je ne maÍ®trise que basiquement les requêtes et le Powerquery, mais s'il y a parmi vous un spécialiste pourrait m'éclairer Í  propos de mon problème et m'indiquer comment y remédier, éventuellement au travers de :
- L'éditeur "Power Query
Ou des -Paramètres de la source de données
comme, changer la source, les délai de commande (en minutes)
ou les paramètres de l'entête de la requête, ou ajouter un entête ou modifier/ajouter les autorisations
Je vous remercie d'avance pour votre aide.
Très bonne journée.

Bonjour,
Je ne connais pas "Power Query" et il n'est pas installé sur mon ordinateur.
Je te propose ceci :
Ouvre le site Web dans une fenêtre non visible et appelle ta macro de
mise Í  jour. L'ouverture va prendre quelques secondes de plus, mais cela
devrait fonctionner...
Í  mettre dans le Thisworkbook du classeur.
'--------------------------------------
Private Sub Workbook_Open()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("https://price.metal.com/")
'False pour que la fenêtre ne soit pas visible
IE.Visible = True
Do While IE.ReadyState <> 4
Loop
'Appelle de ta procédure qui met Í  jour tes données
'procédure "Mise_Í _Jour" dans un module standard
Call Mise_Í _Jour
'Ferme l'application
IE.Quit
End Sub
'--------------------------------------
MichD


Bonsoir MichD,
Merci pour ta sollicitude et pour cette solution.
Malheureusement pour moi, ça plante, car j'utilise le navigateur "Chrome"
-Est-il possible de faire quelque chose de similaire avec mon navigateur?
Encore merci pour ta sollicitude et très bonne soirée.
Emile
MichD
Le #26561719
Pour simplement ouvrir Chrome de Google sur le site web désiré, il y a
ceci. Pour définir un objet "IE" similaire Í  ceci et utiliser cette
variable IE dans tout le code, cela semble difficile sinon impossible.
Dans les références (vba - barre des menus - outils - référence) , il
n'y a aucune bibliothèque impliquant chrome ou google.
Set IE = CreateObject("internetexplorer.application")
'-----------------------
Sub Ouvrir_Chrome()
Dim Chemin As String
Chemin = """C:Program Files (x86)GoogleChromeApplicationchrome.exe"""
Shell (Chemin & " -url https://price.metal.com/"), vbHide
End Sub
'-----------------------
MichD
Emile63
Le #26561954
Le Wednesday, December 2, 2020 Í  9:15:26 PM UTC+1, MichD a écrit :
Pour simplement ouvrir Chrome de Google sur le site web désiré, il y a
ceci. Pour définir un objet "IE" similaire Í  ceci et utiliser cette
variable IE dans tout le code, cela semble difficile sinon impossible.
Dans les références (vba - barre des menus - outils - référence) , il
n'y a aucune bibliothèque impliquant chrome ou google.
Set IE = CreateObject("internetexplorer.application")
'-----------------------
Sub Ouvrir_Chrome()
Dim Chemin As String
Chemin = """C:Program Files (x86)GoogleChromeApplicationchrome.exe"""
Shell (Chemin & " -url https://price.metal.com/"), vbHide
End Sub
'-----------------------
MichD

Bonjour MichD,
Merci pour ton aide et pour ta sollicitude.
Ca fonctionne :)
Un petit problème toutefois, le navigateur Chrome prend le focus et la macro Excel plante derrière.
J'ai essayé de remplacer vbHide par vbNormalNoFocus mais sans succès.
Comment puis-je faire pour reprendre le focus sur Excel et que la procédure courante se poursuive ?
Merci d'avance pour ta sollicitude et très bonne journée.
Emile
MichD
Le #26561984
Bonjour,
J'ai fait un petit fichier exemple
https://www.cjoint.com/c/JLepOYy3y7T
Ces API de Windows ne fonctionnent pas sur une version antérieure
d'Excel 2010, il faudrait ajouter pour certains API leur version antérieure.
Dans le bas du module, j'ai ajouté quelques commentaires Í  propos de la
temporisation entre l'ouverture de Google Chrome et le lancement de ta
macro. Prends le temps de le lire!
À toi de t'amuser.
MichD
MichD
Le #26562016
Une dernière version : https://www.cjoint.com/c/JLetRiIuTSj
P.S. Ça fait longtemps que je ne joue plus avec les API.
Je suis Í  la retraite... et je n'ai pas envie de recommencer!
Je m'amuse suffisamment avec Excel - VBA jusqu'au moment o͹ je prendrai
aussi ma retraite des forums en tant que répondeur! Plus de 20 ans,
c'est quasiment suffisant!
MichD
L-A
Le #26562103
Bonjour MichD
tu ne peux pas partir comme ça, tu es un pilier ici.
je suis lecteur de tes publications meme quand je ne demande pas d'aide.
bonne journée
Le vendredi 4 décembre 2020 Í  20:49:57 UTC+1, MichD a écrit :
Une dernière version : https://www.cjoint.com/c/JLetRiIuTSj
P.S. Ça fait longtemps que je ne joue plus avec les API.
Je suis Í  la retraite... et je n'ai pas envie de recommencer!
Je m'amuse suffisamment avec Excel - VBA jusqu'au moment o͹ je prendrai
aussi ma retraite des forums en tant que répondeur! Plus de 20 ans,
c'est quasiment suffisant!
MichD
MichD
Le #26562122
Le 06/12/20 Í  03:56, L-A a écrit :
Bonjour MichD
tu ne peux pas partir comme ça, tu es un pilier ici.
je suis lecteur de tes publications meme quand je ne demande pas d'aide.


Merci. Je suis certain qu'il y a une relève, elle attend que je parte
pour se manifester plus assidͻment. ;-)
Pour ceux que la chose intéresse, on peut ouvrir Google Í  l'ouverture
d'Excel et le cacher totalement. L'exécutable n'est pas visible dans le
gestionnaire de tÍ¢ches. De même, j'ai ajouté un module qui explique
comment procéder pour minimiser - maximiser - caché une application, pas
seulement Google!
https://www.cjoint.com/c/JLgolgF6Qmj
MichD
MichD
Le #26562126
Vous devriez conserver seulement ce fichier.
Le code a été simplifié et plus complet.
https://www.cjoint.com/c/JLgpjADF3jj
MichD
Poster une réponse
Anonyme