Problem with Excel add-in and .NET

S

Starrmann

I have developed an Excel add-in for a customer. The add-in enables
users to retrieve data from a database by using WorkSheet functions
defined in the xla file. The xla file has references to a .NET
component (.dll). To be be able to use the component from Excel I have
used regasm.exe to create a type library (tlb file)

The User writes in a cell
=Quote('31/12/2009';'MSFT')
and Microsofts stock quote shows up.

These functions are heavily used in a excel workbook.
Since the spreadsheet is big and there's a lot of data to retrieve, it
takes about 20 seconds to open the spreadsheet for users with the
components installed. Let's call these users Group 1

Users without the add-in and the .NET component (Group 2) opens the
workbook in 2 seconds and can see the values, since the data is not
refreshed. In the cells, the users without the component see this type
of formula:

='C:\Program Files\QuoteManager\qm.xla'!Quote('31/12/2009';'MSFT')

So far so good. Now I have another category of users. They used to
have the component installed, but now they just need to see the
values. They want to move into group 2!

So I unregister the .NET dll, delete the dll, the tlb and the xla.

I open the workbook, but it does not open up in 2 seconds nor 20, it
takes several minutes, and excel is using as much processor as it can.
I suspect Excel is trying to refresh all cells, even though it should
not try.

I have searched the registry and i can see traces of the component in
several places including HKEY_CLASSES_ROOT. I tried to manually delete
the instances I found, but the workbook is still extremely slow.

I have tried everything but reinstalling the computer. How can I get
rid of the traces of my component that makes excel try to evaluate the
formulas?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top