Question: I have one report which is all time updated and changed the file name. I want to know is it possible to make a formula (Except for Mecro code) to another worksheet without open this worksheet.

I am using indirect formula but it required to open worksheet.

Answer: 
You can either use a built in type such as ObservableCollection; examples [here](https://stackoverflow.com/questions/4279185/what-is-the-use-of-observablecollection-in-net) and [here](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=netframework-4.7.2). [MSDN](https://learn.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-create-and-bind-to-an-observablecollection) page.

You could also create a new class that derives from List, and overloads the functions you wish to hook.

```
class ListWithAdd<T> : List<T>
{
    public new void Add(T item)
    {
        base.Add(item);
        DoStuff();
    }
}

```
Create a custom generic list, create a event which will be fired when an item is added in the list.

like this:

```
namespace ConsoleApplication2
{
    public delegate void OnAddEventHandler(object item);

    public class AddEventArgs : EventArgs
    {
        public object item { get; set; }
    }

    public class MyList<T> : List<T>
    {
        public event OnAddEventHandler OnAdd;
        public new void Add(T item)
        {
            base.Add(item);
            if (OnAdd != null)
            {
                OnAdd(item);
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyList<string> lst = new MyList<string>();
            lst.OnAdd += (item) => {
                Console.WriteLine("new item added: " + item);
            };
            lst.Add("test");

            Console.ReadLine();
        }
    }
}

```

here's fiddle for you: <https://dotnetfiddle.net/tc5Mq1>