Hi,

I do need help with following problem. We have a password protected excel sheet with *complicated* macros in VBA. VBA code is protected, but some of our traders can still copy whole xls file and run it on private computers (strictly prohibited, but they violate rules and do it). Is there a way how to use xls file on just certain computers?

Any good idea how to solve this problem is greatly appreciated.

Thank you,

Jo Greenwood

Hi,

I do need help with following problem. We have a password protected excel sheet with *complicated* macros in VBA. VBA code is protected, but some of our traders can still copy whole xls file and run it on private computers (strictly prohibited, but they violate rules and do it). Is there a way how to use xls file on just certain computers?

Any good idea how to solve this problem is greatly appreciated.

Thank you,

Jo Greenwood

If the macro is stored in the personal.xls, they should not be able to axccess it when the file is copied and run on another computer.

Sorry if my description was confusing - the goal is to give them mild slap on the wrist but xls file must be fully transferable over mail and filesystem, no installation issues etc. We would probably need to read (don't know how to do it :icon_sad: ) serial number of windows and then check up if it is on the list or not - that is all.

You can also use API calls within the VBA coding to compare a computer's hard drive serial, user name, windows version, user name, etc. to an "allowed" list and have the code deny access or functionality based on this. I did this for a VBA/Excel project at work Permitted users/computers are allowed full function while others on the network accessing the file must provide a password to achieve same functionality.
Also used same principle in a old VB 6 project as part of a registration method to tie Unlock Codes to a specific program-generated serial number. This serial number was mathematically produced from the API information I mentioned above.

This article has been dead for over six months. Start a new discussion instead.