Using RTD with Excel 2016 on Windows 10 Does Not Refresh RRS feed

  • Question

  • I'm trying to use RTD with Excel 2016 on Windows 10 and find that it does not refresh the values without a forced update using "Application.RTD.RefreshData" in the VBA Editor.

    I've tried several RTD servers and the problem appears common only to the Excel 2016 and Windows 10 combination. Windows 7 and Excel 2016 works as expected. The problem is only with Windows 10. Using Excel 2013 and Windows 10 is OK. The Excel 2016 has all the latest updates so it is not related to the issue experienced at the end of 2015 where a server had to be specified. This bug has been subsequently fixed by Microsoft.

    To give a simple example, taking a RTD server that displays the time every 5 seconds in a cell will give a value in an Excel cell on first entering the formula but will not "tick" (refresh) the value automatically. If "Application.RTD.RefreshData" is used the value updates.

    Debugging the RTD server it appears that Excel 2016 is not calling RefreshData() as it does in other OSs or Excel versions.

    I've tried this on two machines and can replicate it every time. Can't help feeling this is a bug in Excel 2016 when run on Windows 10?

    Wednesday, October 5, 2016 1:50 PM

All replies

  • Hi,

    Using Office2016/Win10, I could succeed in using RTD without forced updating. I followed How do I create a real-time Excel automation add-in in C# using RtdServer?

    Could you please share more detail information with us like your sample RTD Server, so that we could try to reproduce and find the solution or workaround.

    Thanks for your understanding.

    Thursday, October 6, 2016 1:57 AM
  • Thanks for the reply.

    I would like to share this link but the forum will not let me post links currently.  I'll try again without the actual link embedded:

    Nothing special about the machine setup:

    Windows 10 Enterprise (x64) with Excel 2016 (x86) v16.0.7341.2035.  Its a VM rather than a physical box but I do not see what difference this should make.

    Thursday, October 6, 2016 8:22 AM
  • Hi,

    This project works for me. I am using Windows 10 Enterprise (x64) with Excel 2016 (x86) v16.0.6701.1041.

    My steps:

    Download the sample project,

    Run VS as Admin,

    Build the RtdServer,

    Run RtdServerTestClient,

    Open Excel,

    Input =RTD("RtdServer.Simplertdserver",,"irrelevant")

    The time is changing every 5s.

    What are your steps, is there any difference?

    Thursday, October 6, 2016 9:11 AM
  • I've been playing around with "Application.RTD.ThrottleInterval" and this has fixed it on one of the three test machine I have. On a clean install of Windows 10 with Excel 2016 the default value appears to be "2000" (although not written to the registry). It behaves like it is set as "-1". This is strange install behaviour I've now experienced this on three machine with Windows 10 and Office 2016.

    Setting this value to 2000 manually now gives ticking values (after restarting Excel). It is also persisted across Excel sessions. So perhaps the problem in Excel installer (or initial run of RTD in Excel) on Windows 10 setting this value to -1 rather than the documented value of 2000?

    FYI- Reg Key:

    I still have two VMs that this does not fix. I've fixed the VM where I have dev tools installed e.g. Visual Studio etc. but two that are clean Win 10 VMs with Excel 2016 installed are still not updating.
    • Edited by AlexOSG Friday, October 7, 2016 10:06 AM
    Thursday, October 6, 2016 10:05 AM
  • Updating Excel 2016 appears to be the solution as well as setting the ThrottleInterval.  The Dev machine was up-to-date but the other two test machine were not.  Doing this update and the RTD is working.  So it possibly was a bug in Excel however I still need to set the ThrottleInterval otherwise it still requires a manual refresh.
    Friday, October 7, 2016 10:15 AM
  • Hi,

    Glad that you have found workarounds or solutions.

    Since the ThrottleInterval value would be written in registry by default, I suggest you check the value in VBE: do not set the value manually,  input  "? Application.RTD.ThrottleInterval" in the immediate windows, check if the value is 2000.

    Friday, October 7, 2016 11:37 AM