How do I trigger a VBA macro from within the TR function in Eikon Excel
Best Answer
-
Following on from Neil's reply, RData(), RHistory() and TR() functions have a MACRO
argument where macros can be run when the function has updated its data. The
macros can be in the code on the Workbook or Sheet object, in a VBA module
contained in the workbook or code in another, separate workbook.The
Word document attached gives a description and various examples of how
to use the MACRO argument, including file names with gaps
and named ranges.The
examples and document show RData() and RHistory() and TR() examples. The syntax for the TR function itself is slightly different as the
argument (MACRO) and parameter (myMacroName) are separated by a colon
(:) in Rdata()/RHistory() and by an equality sign (=) in TR().Thus,
requesting BID and ASK for VOD.L, to run the macro called myMacro1 when
the data updates, the two functions will look like this;
=RData("VOD.L","BID;ASK;PRCTCK_1",,"MACRO:myMacro1","CH:Fd",A2)=TR("VOD.L","BID;"&"ASK;"&"PRCTCK_1","MACRO=myMacro1 CH=Fd",A2)
It isn't possible to include or send variables with the
macro name when it is defined in the RData(), RHistory() or TR()
function, such as
=RData("VOD.L","BID;ASK;PRCTCK_1",,"MACRO:myMacro1(myVariable)","CH:Fd",A2)=TR("VOD.L","BID;"&"ASK;"&"PRCTCK_1","MACRO=myMacro1(myVariable) CH=Fd",A2)
What will be required is to run an initial macro, e.g. myMacro1
that gathers or creates the required variable, which then runs a
subroutine, e.g. myMacro2, or a function, e.g. myCustomFunction, to
return the desired result. The code sample below shows this.Option Explicit
'Called by RData
Sub myMacro1()
Dim myVar As Variant
'Using a custom function
myVar = myCustomFunction(5)
MsgBox "Result of myCustomFunction" & Chr(13) & myVar
'Using a subroutine
Call myMacro2(5)
End Sub
Function myCustomFunction(ByVal var1 As Integer)
myCustomFunction = var1 * 25
End Function
Private Sub myMacro2(ByVal val1 As Integer)
MsgBox "Result of myMacro2" & Chr(13) & val1 * 125
End SubThe zip file attached to this reply contains the Word document and Excel sample file.
0
Answers
-
You can get your TR function to trigger a macro through the "custom TimeFrame" option.
In the example below the "Showmessage" macro is called every time updates are displayed within the set timeframe.
= TR(F7:F46,"BID","START=09:00 END=20:30 MACRO=SHOWMESSAGE")
You would set your custom timeframe as below, from UPDATE FREQ menu
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛