Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA WinHttpRequest API

Jass932

XLDnaute Nouveau
bonjour,

je suis bloqué sur l'un de mes codes vba. j'essaie de récupérer des données via une api. mais mon code ci-dessous ne marche pas, le code ci-dessus n'est qu'un exemple pour récupérer les cours de bourse de microsoft je ne vois pas l'erreur. Pourriez-vous m'aider?

Function api() As Variant
Dim url As String
Dim cle As String
Dim request As WinHttpRequest

url = "https://rapidapi.com/alphavantage/api/alpha-vantage/"
cle = cleapi()
parametre = "function=TIME_SERIES_DAILY&symbol=MSFT"
request.Open "GET", url & parametre
request.SetRequestHeader "X-RapidAPI-Host", "alpha-vantage.p.rapidapi.com"
request.SetRequestHeader "X-RapidAPI-Key", cle

request.Send

Debug.Print request
 

Jass932

XLDnaute Nouveau
Bonjour,

Merci de votre aide. Ci-dessous le code actuellement. A la fin du code j'obtiens ce message d'erreur. Je ne vois pas trop comment regler ce probleme.

Sub api()

Dim url As String

Dim cle As String

Dim parametre As String

Dim request As WinHttpRequest

Set request = New WinHttpRequest

url = "https://rapidapi.com/alphavantage/api/alpha-vantage/"

parametre = "?Function=TIME_Series_Dayli&symbol=MSFT"

cle = cleapi

request.Open "GET", url & parameters

request.SetRequestHeader "X-RapidAPI-Host", "alpha-vantage.p.rapidapi.com"

request.SetRequestHeader "X-RapidAPI-Key", cle

request.Send

Debug.Print request.StatusText

End Sub
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Le code ci-dessous fonctionne sur mon Pc .
Assurez-vous d'avoir une clé d'accès valide sur le site,
celle qui est indiquée est une clé temporaire personnelle,
je ne sais pas combien de temps elle restera valide .
VB:
Sub api()

Dim url As String
Dim cle As String
Dim parametre As String
Dim request As WinHttpRequest

Set request = New WinHttpRequest
url = "https://alpha-vantage.p.rapidapi.com/"

parametre = "query?function=TIME_SERIES_DAILY&symbol=MSFT&outputsize=compact&datatype=csv"

cle = "ac4460a83emshcb214093cc18a63p1f0a09jsnc26cc5a29252"

request.Open "GET", url & parametre
    request.SetRequestHeader "X-RapidAPI-Host", "alpha-vantage.p.rapidapi.com"
    request.SetRequestHeader "X-RapidAPI-Key", cle
request.Send

If request.Status = 200 Then
    Dim Buffer As Variant, R As Long, V As Variant, Nv As Integer
    Cells.ClearContents
    Buffer = Trim(request.ResponseText)
    For Each Line In Split(Buffer, vbCrLf)
        R = R + 1
        V = Split(Line, ","): If Nv = 0 Then Nv = UBound(V)
        Range("A" & R).Resize(, Nv).Value = V
    Next
    Range(Cells(1, 1), Cells(R, Nv)) = Range(Cells(1, 1), Cells(R, Nv)).Value
Else
    MsgBox request.Status & " " & request.StatusText & vbLf & request.ResponseText
End If

End Sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…