Je ne sais pas dans quel sens tourner le problème :)

edouardgg

XLDnaute Nouveau
Bonjour à tous,

Je suis bloqué sur mon classeur Excel, je ne sais pas dans quel sens prendre le problème. En fait, c'est assez complexe (en tous cas pour moi). Mon but est de récupérer des données de pages web. Jusque là ca va, mais j'aimerais que l'adresse internet qui contient les valeurs à récupérer change automatique par rapport à certaines valeurs que j'ai dans mes cellules. C'est surement pas clair, je vais donner un exemple.

Voici un exemple de ce que pourrait être l'adresse de recherche de valeurs:

"http://finance.yahoo.com/q/bs?s=ABII"

Ma base pour mon projet est :

"http://finance.yahoo.com/q/bs?s"

Sans le "ABII" qui est en fait le code de la valeur (appelé Ticker Yahoo)

A coté de cela, j'ai des Ticker Yahoo:

AACC
AAME
AAON
AAPL
AATI
AAWW
ABAT
ABAX
ABBC
ABCB
ABCO
ABCW
ABFS
ABII
ABIO
ABMD
ABTL
ABVA
ACAD
ACAP
ACAS
ACAT
ACCL
ACET
ACFC
ACFN
ACGL
ACGY
ACHN
ACIW
ACLI
ACLS
ACMR
ACOR
ACPW
ACTG
ACTI
ACTL
ACTS
ACTU
ACUR
ACXM
ADAM
ADAT
ADBE
ADCT
ADEP
ADES
ADGF
ADLR


Ma question: comment faire que l'adresse ("http://finance.yahoo.com/q/bs?s=") mette automatique un "Ticker Yahoo" différent à chaque fois et que les différentes données s'enregistrent sur une feuille différente à chaque fois ?

Merci d'avance pour votre précieuse aide.

J'espère que c'est possible de le faire.

Cordialement,

Edouard
 

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Merci ! Maintenant une partie du problème est résolue, j'ai les adresses.

Maintenant il s'agit d'importer les données de ces adresses comme cela est fait sur la feuille 2 du classeur...

Quelqu'un sait ?

Merci d'avance!
 

kjin

XLDnaute Barbatruc
Re : Je ne sais pas dans quel sens tourner le problème :)

Re,
Code:
Sub QueryEdouard()
For Each Cel In Range("A2:A51")
    ActiveWorkbook.Worksheets.Add after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Cel
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://finance.yahoo.com/q/bs?s=" & Cel.Text, Destination:=Range("A1"))
        .Name = Cel.text
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "12"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .Refresh BackgroundQuery:=False
    End With
Next
End Sub
A+
kjin
 

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Merci infiniment kjin !!! C'est exactement ce que je voulais, ca marche impeccable!! Bravo et merci beaucoup!!!
J'ai juste une petite erreur dans l'exécution de la macro... Cela intervient à la 41e feuille apparemment :

Erreur d'exécution: '1004':

Fichier inaccessible. Essayez l'une des opérations suivantes:
...

Vous savez d'où cela provient ? Pour info, j'utilise Excel 2007.

Deuxième question:

Maintenant j'ai toutes les données dont j'ai besoin, mais seule la donnée placée dans la cellule C49 m'importe.

Serait-il possible de créer un code qui permettrait d'aller dans chaque feuille (qui ont pour noms, les noms des "Ticker Yahoo"), copier la valeur en C49 et la coller en face du "Ticker Yahoo" correspondant sur la feuille Ticker?

Au final, on aurait sur mon fichier, de A2 à A51, les tickers et de B2 à B51, les valeurs C49 de chaque feuille.

Merci d'avance pour votre aide et merci encore kjin!
 

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Petite question en plus pour kjin:

Comment tu as fait pour dire au code quelle était la bonne table sur la page internet et surtout comment tu as trouvé "la référence" de la bonne table ?

Est-ce WebTables = "12" ? Si oui, ou as tu trouvé le 12 ?

Merci
 
Dernière édition:

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Deuxième question:

Maintenant j'ai toutes les données dont j'ai besoin, mais seule la donnée placée dans la cellule C49 m'importe.

Serait-il possible de créer un code qui permettrait d'aller dans chaque feuille (qui ont pour noms, les noms des "Ticker Yahoo"), copier la valeur en C49 et la coller en face du "Ticker Yahoo" correspondant sur la feuille Ticker?

Au final, on aurait sur mon fichier, de A2 à A51, les tickers et de B2 à B51, les valeurs C49 de chaque feuille.

Merci d'avance pour votre aide et merci encore kjin!


J'ai trouvé la réponse pour cela, mais j'ai un problème... quand j'actualise les données j'ai une erreur "Fichier inaccessible", je comprends pas... Peu importe que je mette BackgroundQuery en True ou False... j'ai une erreur 1004 fichier inaccessible ou une erreur fichier inaccessible qui apparait avec Requete sur le web non valide...

Je vous mets mon fichier en pièce jointe.

Merci d'avance pour votre aide.

Bonne soirée à tous
 

Pièces jointes

  • AssetsValueTangible.xls
    39.5 KB · Affichages: 130
Dernière édition:

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

J'ai trouvé la solution pour mon erreur!

J'ai augmenté le cache d'internet explorer (de 50 à 250 Mo) et maintenant le raffraichissement se fait nickel!!

Merci j'ai tout ce qu'il me faut!!

Bye et merci à tous!
 

edouardgg

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Je me rends compte que le cache d'IE se remplit super rapidement ce qui me donne l'erreur... Il faut que je le vide à chaque utilisation on dirait. Je vais essayer de trouver un code VBA pour qu'il vide le cache à chaque fois!

Par contre, j'ai pas mal de rafraichissements qui ne se font plus... Pas d'erreur mais les données n'apparaissent pas
 

smariani

XLDnaute Nouveau
Re : Je ne sais pas dans quel sens tourner le problème :)

Salut,

Je ressors ce topic car j'ai le même problème que toi. Je fais des requêtes web sur yahoo finance. Tout ce passe bien et un moment j'ai erreur d'execution 1004, fichier inaccessible. Si je relance ma macro, l'erreur apparaît tout de suite sans même faire une requête. Maintenant si j'ouvre Internet Explorer et que je supprime tout son historique, cela refonctionne pour un nombre incertain de requêtes. Je ne sais pas à quoi lier ce problème, le cache?

As-tu réussi finalement à résoudre ce pb?

Cordialement,

SM
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz