Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Eikon COM /
avatar image
Question by LarryT · Mar 17, 2016 at 11:39 AM · eikonexcelvba

How do I trigger a VBA macro from within the TR function in Eikon Excel

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

2 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by David.Cammish · Mar 18, 2016 at 10:23 AM

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 Sub

The zip file attached to this reply contains the Word document and Excel sample file.

rdata-tr-macro-examples.zip


rdata-tr-macro-examples.zip (199.2 KiB)
Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

avatar image
REFINITIV
Answer by Neil Shah · Mar 17, 2016 at 12:17 PM

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.

macro.png

= TR(F7:F46,"BID","START=09:00 END=20:30 MACRO=SHOWMESSAGE")

You would set your custom timeframe as below, from UPDATE FREQ menu

custom-timeframe.png

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
4 People are following this question.

Related Questions

How can I open an Eikon QuoteApp Window from Eikon Excel VBA for a source different than Q IDN Data?

Can I obtain News with the COM API?

Corporate Action Excel getting wrong data

Can I find the default Eikon for Excel RHistory fields for an instrument using the COM APIs and VBA?

How to disable automatic TR data refresh in Excel?

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges