événement de c # dll n'a pas été déclenché par excel VBA call

J'ai ce dll écrit en c # et tout ce code fonctionne sur mon pc dev.

[Guid("a125ae08-682e-46cb-9a9e-52dd70021d80")] [ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] public interface IMyEvents { [DispId(1)] void OnEvent(); } [Guid("fb9be25d-5012-44d7-8d66-221c3343e19e")] [ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] public interface IMyClass { [DispId(2)] int Sum(int x, int y); [DispId(3)] void StartTimer(); } [Guid("bd40af0a-ac44-4ffe-88a7-9bd4f77a9790")] [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] [ComSourceInterfaces(typeof(IMyEvents), typeof(IMyClass))] public sealed class TestForVba:IMyClass, IMyEvents { public delegate void TimerEvent(); public event TimerEvent OnEvent; public int Sum(int x, int y) { return x + y; } void IMyEvents.OnEvent() { } public void StartTimer() { Timer t = new Timer(); t.Interval = 5000; t.Elapsed += (s, a) => { OnEvent?.Invoke(); }; t.Start(); } } 

dll et com enregistré utilisez regasm.exe et puis j'appelle de excel vba

 Public WithEvents b As TestForVba Private Sub b_OnEvent() MsgBox "event Left Fired" End Sub Private Sub CommandButton1_Click() Set b = CreateObject("TestForVba") MsgBox b.Sum(5, 10) MsgBox "Timers for event fire starting..." Call b.StartTimer End Sub 

Tout ce code (c # et vba) fonctionne sur mon PC, mais lorsque je copy le file Excel et dll dans le PC user et que je lance le code vba, je vois uniquement le message pour b.Sum (5, 10), mais le message provenant de l'événement déclenché n'a pas été affiché .