VBA- comment extraire des données sur internet via un programme vba ?

cs_cecile64 Messages postés 15 Date d'inscription vendredi 15 juin 2012 Statut Membre Dernière intervention 17 août 2012 - 3 août 2012 à 09:52
 mlbzh - 15 nov. 2012 à 11:23
Bonjour,
J'ai crée un code qui calcule un tableau d'amortissement en fonction du type de taux : il marche pour les taux fixes, et je voudrais maintenant le faire marcher avec les taux variables.

J'ai une userform qui permet à l'utilisateur de rentrer les caractéristiques nécessaires à tous les calculs. je voudrais par exemple que lorsqu'il choisisse parmi la liste des taux l'EURIBOR12M, mon code aille chercher la valeur du taux sur un site internet (boursorama). j'ai trouvé la page où il faut aller pour avoir la valeur du taux ( pour l'exemble, c'est http://www.boursorama.com/cours.phtm...UR8Y&vue=histo).

je cherche depuis 2 jours comment extraire cette donnée via vba, mais je ne comprends rien à ce que je lis : existe-il une fonction en vba qui permette d'extraire les données du net et de les utiliser dans mon programme? si oui pourrais-je avoir un exemple SIMPLE?

et de plus je vais avoir une autre difficulté : je voudrais la valeur du taux à une date que l'utilisateur rentrera. Mais cela signifie qu'il faut se connecter sur la bonne page internet (la page donnée dans mon exemple est le taux du jour, mais comment faire pour avoir la page à n'importe quel jour?)

A la limite, je me concentrerai sur le pb de date apres avoir bien compris comment extraire une donnée du web en vba. Mais bon si quelqu'un a en plus la solution pour ca, ce sera la cerise sur mon gateau

Je vous remercie pour votre aide précieuse ! j'espère que j'ai bien expliqué mon problème....
Bonne journée et bientot bon week-end !!!

ps: pour info, j'utilise firefox et windows 7...

17 réponses

cs_cecile64 Messages postés 15 Date d'inscription vendredi 15 juin 2012 Statut Membre Dernière intervention 17 août 2012 1
8 août 2012 à 09:28
rebonjour à tous! bon apres quelques recherches de plus j'ai fini par arriver à faire la première étape de ce que je voulais faire, cad d'aller récupérer le taux sur internet.
j'utilise pour cela la fonction :

     'fonction pour récuperer la valeur sur internet
Public Function recup_euribor12m(lienInternet As SHDocVw.InternetExplorer, pageInternet As MSHTML.HTMLDocument, leTaux As MSHTML.HTMLSpanElement, tauxWeb As String) As Variant


Set lienInternet = New SHDocVw.InternetExplorer

lienInternet.Visible = False

lienInternet.navigate "http://www.boursorama.com/cours.phtml?symbole=1xEUR8Y&vue=histo"

' Attente avec timeout de 10 s
If WaitIE(lienInternet, 10) Then
   ' 10 s écoulées et page non chargée
   MsgBox "Time out!"
Else
   ' Page chargée, on continue
   Set pageInternet = lienInternet.Document
   ' on va dans le item où est située la valeur du taux
   Set leTaux = pageInternet.getElementsByClassName("cotation").Item(0)
    ' le taux est dans le texte de l'item
    tauxWeb = leTaux.innerText
   
   'on converti le taux en nombre
    recup_euribor12m = CDbl(Val(tauxWeb))
       
End If
End Function
       

' Attend que la page internet soit chargée
' pTimeOut est un time out en secondes (WaitIE vaut True si Timeout)
Public Function WaitIE(oIE As InternetExplorer, Optional pTimeOut As Long = 0) As Boolean
Dim lTimer As Double
lTimer = Timer
Do
    DoEvents
   If oIE.readyState = READYSTATE_COMPLETE And Not oIE.Busy Then Exit Do
   If pTimeOut > 0 And Timer - lTimer > pTimeOut Then
       WaitIE = True
       Exit Do
   End If
Loop
End Function



et j'appelle cette fonction depuis mon main, ca compile je suis contente :)

Maintenant j'ai VRAIMENT besoin d'aide pour l'étape 2 : vraiment, ça fait une semaine que je cherche et j'essaie les tuto sur le net, mais je n'y arrive pas, peut-etre à cause de mon manque de connaissance en html ( j'ai quand même lu un tuto dessus mais tjs pas de résultats...)

ce que je voudrais faire, c'est, au lieu de prendre un taux sur la page web donnée dans ma fonction, je voudrais, apres que l'utilisateur de mon code ait rentré une date, pouvoir changer la date du calendrier (cf photo ci-dessous) afin de récupérer le taux à cette date là! J'ai trouvé des tuto pour apprendre à cliquer sur un bouton d'une page web, mais ca ne marche pas pour mon code...

pour info je veux agir sur ce calendrier de la page suivante :

au milieu de la page, il y a marqué "cours de la valeur au" puisu ne date, modifiable par un clic sur le calendrier. c'est sur ce calendrier que je veux pouvoir cliquer et modifier la date...
(cependant si c'est trop compliqué, cela ne me dérange pas de changer de site, mais c'est le seul que j'ai trouvé pour avoir les taux à une date souhaitée).

Merci beaucoup pour votre aide, j'ai déja bien avancé!
bonne journée !
1
Rejoignez-nous