Invalid procedure call or argument
Bonjour à tous,
Je souhaite faire tourner une macro me ramenant la valeur suivante "INTERVAL_PERCENT_CHANGE" à partir de :
L'identifiant du fonds concerné "S3.Range(Cells(3, 76), Cells(3, 77)).Value",
Dates de début et de fin "S3.Cells(i, 73).Value" et "S3.Cells(i, 74).Value"
Devise "S3.Cells(2, 76).Value"
à partir des API de Bloomberg Mais je reçois un doux message d'erreur " invalid procedure call or argument".
J'ai vraiment tout essayé mais il y a surement quelque chose qui m'échappe.
la ligne soulignee est la suivante:
range(cells(4,76),cells(12,77)).value msg.GetElement("securitydata").GetValue(0).GetElement("fieldData").GetElement("INTERVAL_PERCENT_CHANGE").ValueMerci pour toutes vos réponses et éclairages. ci-dessous le code en entier
Sub ref_data()
Dim session As blpapicomLib2.session
Set session = New session
session.Start
Dim Service As blpapicomLib2.Service
session.OpenService ("//blp/refdata")
Set Service = session.GetService("//blp/refdata")
Dim Request As blpapicomLib2.Request
Set Request = Service.CreateRequest("ReferenceDataRequest")
Request.Append "securities", "S3.Range(Cells(3, 76), Cells(3, 77)).Value"
Request.Append "fields", "INTERVAL_PERCENT_CHANGE"
Dim overrides As Element
Set overrides = Request.GetElement("overrides")
Dim override As Element
Set override = overrides.AppendElment
Dim i As Integer
For i = 4 To 12
Dim override1 As Element
Set override1 = overrides.AppendElment
override1.SetElement "fieldId", "Start_Date_Override"
override1.SetElement "value", "S3.Cells(i, 73).Value" 'Replace date with the cell reference eg Range("B10").Value
Dim override2 As Element
Set override2 = overrides.AppendElment
override2.SetElement "fieldId", "End_Date_Override"
override2.SetElement "value", "S3.Cells(i, 74).Value" 'Replace date with the cell reference eg Range("A10").Value
Dim override3 As Element
Set override3 = overrides.AppendElment
override3.SetElement "fieldId", "CRNCY"
override3.SetElement "value", "S3.Cells(2, 76).Value" 'Replace EUR with the cell reference eg Range("A10").Value
session.SendRequest Request
Dim blpevent As blpapicomLib2.Event
Dim it As blpapicomLib2.MessageIterator
Dim msg As blpapicomLib2.Message
Dim finalResponse As Boolean
Do While finalResponse = False
Set blpevent = session.NextEvent
Set it = blpevent.CreateMessageIterator
Do While it.Next
Set msg = it.Message
If blpevent.EventType = RESPONSE Or blpevent.EventType = PARTIAL_RESPONSE Then
range(cells(4,76),cells(12,77)).value msg.GetElement("securitydata").GetValue(0).GetElement("fieldData").GetElement("INTERVAL_PERCENT_CHANGE").Value
End If
If blpevent.EventType = RESPONSE Then
finalResponse = True
End If
Loop
Loop
Next i
End Subbonjour
selon la conception du site, tu peux espérer te passer de macro et de l'API
https://www.google.com/search?q=power+query+stock+exchange&ie=utf-8&oe=utf-8&client=firefox-b
sous Excel ou Power BI
dans les 2 cas, ce sera le travail de Power Query (c'est un ETL vraiment top, inclus dans Excel et PBI)
Merci JMD
j'ai commencé à me documenter dessus.
Mais bloomberg n'étant pas un site internet mais une sorte de logiciel, j'ai peur de ne pas y arriver. Néanmoins je vais rechercher des tutoriels pour avoir une idée. Si tu as des recommandations je suis prenneuse.