connexion a un site internet via vba
Bonjour
Je voudrais récuperer des données financières a partir d'un site internet, qui s'actualise toutes les deux secondes.
J'ai fait un programme en VBA. Ce programme consiste a rafraichir toutes les 2 secondes la page internet. Le problème est que ca sature tres vite. Au bout de 15 minutes, le rafraichissement de la page internet est long, (sachant qu'il doit fonctionner pendant 10 heures, ca me semble difficile de faire comme ca)
J'utilise Internet explorer, qui fatigue au bout de 10 minutes
Pensez vous que ce soit possible de faire ca en VBA.
Le PHP est il plus adapté pour ca?
Pour ceux qui savent coder en vba, mon programme est celui la:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Sub ConnectionIE()
Dim IE As New SHDocVw.InternetExplorer
Dim ietxt As String
Dim htmlDoc As Mshtml.HTMLDocument
Dim ddd As Mshtml.HTMLTextElement
Set IE = New SHDocVw.InternetExplorer
IE.Navigate2 "http://finance.yahoo.com/q?s=%5EFCHI"
'"http://finance.google.com/finance?q=INDEXNIKKEI:.N225"
IE.Visible = True
Set htmlDoc = IE.document
While Not htmlDoc.readyState = "complete"
Wend
For i = 1 To 300000
Set htmlDoc = IE.document
IE.Refresh2
IE.Visible = False
While Not htmlDoc.readyState = "complete"
' IE.Visible = True
Wend
IESource = htmlDoc.documentElement.innerHTML 'récupère le code source de la page HTML
dd = Left(IESource, 30000)
ZZZ = WorksheetFunction.Find("yfs_l10_^fchi", dd, 1)
z = Mid(IESource, ZZZ + Len("yfs_l10_^fchi") + 1, 8)
nblignes = Range("A1").End(xlDown).Row
Range("A1").Offset(nblignes, 0) = Trim(z)
Range("A1").Offset(nblignes, 0).Activate
Range("A1").Offset(nblignes, 2) = CStr(Minute(Now()))
Range("A1").Offset(nblignes, 3) = CStr(Second(Now()))
Set htmlDoc = Nothing
Next i
Range("C1") = Range("C1") + 1
IE.Quit
Set IE = Nothing
End Sub |