Comment télécharger un fichier se trouvant sur le net en VBA ?

Comment télécharger un fichier se trouvant sur le net en VBA ? - VB/VBA/VBS - Programmation

Marsh Posté le 15-03-2008 à 23:39:13    

Bonjour à tous,
 
Je réalise un projet sous excel en VBA, pour mon master2. Je débute en VBA et ai justement choisi de le faire en VBA afin de pouvoir apprendre ce langage qui me sera utile dans mon futur travail (d'ailleurs je suis intéressé par des sites ou références de livres permettant de me perfectionner en excel et VBA).
 
Bon passons et venons en à ma question !
 
Je souhaiterai savoir comment faire pour télécharger un fichier au format tableur qui se trouve sur internet. Plus précisément, je voudrais qu'en cliquant sur un bouton "mise à jour" par exemple, que excel se connecte à l'url voulu et aille ouvrir directement ce fichier dans une feuille "Temporaire" du classeur.  
Je vous communique l'url où se situe justement le fichier : http://fr.finance.yahoo.com/q/hp?s=EDF.PA
( Télécharger au format tableur)
En espérant d'avoir été assez précis.
Merci.
Bonne soirée.

Reply

Marsh Posté le 15-03-2008 à 23:39:13   

Reply

Marsh Posté le 16-03-2008 à 00:03:14    

Code :
  1. Sub telecharger()
  2. dim strURL as string
  3. strURL="http://fr.finance.yahoo.com/q/hp?s=EDF.PA"
  4. Workbooks.Open FileName:=strURL
  5. end sub


 
Ensuite, tu fais une recherche dans les cellules pour retrouver celle qui contient "Ouverture" et les données que tu veux récupérer sont juste en dessous ;)
 
Bon courage,
 
JM


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 16-03-2008 à 00:14:30    

Merci beaucoup pour la rapidité de ta réponse. Néanmoins, j'ai du mal m'exprimer car je voudrais télécharger le fichier directement: "Télécharger au format tableur". Cependant, si ce n'est pas réalisable ou s'il n'y a pas de suggestion de réponse alors ton code me dépannera et me servira malgré tout.
Encore merci et bonne soirée

Reply

Marsh Posté le 16-03-2008 à 00:23:36    

Le fichier reçu est au format tableur, chaque valeur est dans une cellule. Mais c'est sûr que la mise en page laisse à désirer... A toi de la nettoyer, en vba ça va assez vite et c'est une bonne façon d'apprendre les différentes fonctions (supprimer des lignes, des cellules, compter les valeurs, mais aussi refaire des bordures, fonds de cellules etc.)
 
JM


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 16-03-2008 à 00:38:18    

Oui c'est surement un très bon exercice lol. Le problème est que l'historique n'est pas complet. Puis cela m'aurait permis de gagner beaucoup de temps.  
En tout cas pour le moment je vais me concentrer sur ta réponse et faire ce que tu me conseilles comme exercice lol. Je pensais utiliser une macro pour effectuer la mise en page et l'incorporer dans ton code par exemple. Est ce une bonne méthode ou devrais je faire autrement ? Pourrais tu me conseiller un site sur lequel je trouverai justement des explication et information sur les différentes fonction en vba(supprimer des lignes, des cellules, compter les valeurs, mais aussi refaire des bordures, fonds de cellules etc.)  
Encore merci du suivi

Reply

Marsh Posté le 16-03-2008 à 08:15:57    

Oups ! mea-culpa, je n'avais pas vu qu'il existait un lien direct "télécharger au format tableur" ! (http://ichart.yahoo.com/table.csv?s=EDF.PA&a=10&b=21&c=2005&d=2&e=16&f=2008&g=d&ignore=.csv)
Dans ce cas, tu indiques cette adresse dans strURL à la place de celle indiquée plus haut et ça devrait fonctionner !
 
Sinon, j'ai appris le vba avec le bouquin "vba pour les nuls", beaucoup de recherche sur le net et notamment sur Developpez.com (la faq est très très complète, il vaut mieux l'avoir consultée avant de poser une question sous risque de ne pas avoir de réponse !).
Il y a aussi le site de Cathy Astuces qui est pas mal, malgré une présentation un peu brouillon.
Si tu as déjà fait un peu de prog, tu ne devrais pas avoir trop de mal à te mettre au vba, c'est assez facile à comprendre à partir du moment où on a pigé comment fonctionne la programmation orientée objet.
 
JM


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 16-03-2008 à 10:23:06    

Bonjour,
 
Je te remercie une fois de plus pour ton investissement et tes réponses.  
Effectivement j'ai déjà fait de la prog en C/C++. Mais j'ai choisi de faire ce projet en VBA pour justement apprendre ce langage et essayer de me perfectionner.
Je suis rassuré car je consulte déjà ces sites lol.
Aujourd'hui, je vais poursuivre le code et te tiendrai au courant.  
Merci et bon dimanche.
 

Reply

Marsh Posté le 07-09-2008 à 16:02:00    

hello tout le monde,
 
Quand j'utilise cette fonction avec l'url :
 

Code :
  1. strURL = "http://www.euronext.com/search/download/pricesearchdownloadpopup.jcsv?pricesearchresults=actif&equitiesChoice=1&structuredProductType=8&requestComesFromSearchBoxParameter=true&lan=EN&resultsTitle=Warrants&cha=1812&underlying=FR0003500008*XPAR*ISIN&instrumentType=3&underlyingType=2&riskLevel=L&format=xls&formatDecimal=.&formatDate=dd/MM/yy"


 
Ca me fait une erreur assez bizarre : ca marque juste "400" dans Visual Basic...  
 
Je suis sous 2007.
 
Merci pour votre aide,
 
m.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed