I am new into VBA. I am learing a lot from post in this site. I have one issued that I havent been able to resolve though using application.violate

I have written a custom function that do some data-lookup in another sheet and returns a text string.

Bacgruound: Sheet A: Contains the custom function: the custom function looks up a date-value i sheet A, and then looks up data in sheet B (based on the date value) and returns a string to the calling function.
Sheet B: Contains all the raw data (workschedule/fields of strings)

Issue A: When data was changed in the active sheet (sheet A) that was calling the function then the function did not update/recalculate. Solution: I used the application.violate that resolved the issue

Issue B: However, when data are changed in sheet B then all the custom functions in sheet A turns into "#value". Data in the custom functions simply does not update/recalculate. The only way to update/reccalculate the field in this condition is by 1. manually-recalcultae the sheet (cmd+= in excel 2011 for mac) or 2. by placing the cursor in the data-entry area of the non-updated fields and then cmd-s (save) the workbook.

Above two mentioned methods makes al the non-updated fields recalculate. But this is pretty obviously annoying. How do i resolve this issue and make the fields/custom function recalculate/update when data in another sheet (but same workbook) is changed??

samir