Ввод определенного статуса сотруднику по нескольким условиям

Есть например исходная таблица в которую вводятся данные о сотрудниках. Есть Имя и Фамилия сотрудника, есть также множество других данных (например: дата начала действия визы, дата конца визы) и т.п.

Есть вторая таблица "Статус" назовем ее так. В эту таблицу вносятся Фамилия, Имя сотрудника и его статус.

Статус определяется по условиям исходя из разных событий.

Например статус "Имеет визу" и статус "Не имеет визу".

Что нужно:

- что бы была проверка по нескольким параметрам определенного сотрудника и исходя от результатов добавление в таблицу "Статус" данные о сотруднике включая его статус отталкиваясь от полученных данных после проверки.

Пример: Сотрудник Иван Иванов, дата начала визы 01.01.2018, дата конца визы 01.06.2018. Необходимо что бы макрос нашел информацию по этому сотруднику которая была добавлена последней в таблицу "Исход" и проверил (если сегодняшняя дата больше даты начала визы и меньше даты конца) записал в таблицу "Статус" - "Имеет визу".

В чем может быть сложность и подвох. Данные по сотрудниках в таблицу исход могут вносится частично. Например: строка 10 внесены какие то данные но столбцы с визой "пустые", информация о визе есть в строке 15 и строке 20. Можно ли заставить макрос что бы он нашел по этому сотруднику

последнюю добавленную информацию и сравнил эти даты?.

Есть примерный алгоритм как это сделать (за алгоритм спасибо

Step_UA

):

1. Считываем из таблицы статус в массивы имя и фамилия, и в отдельный массив статус

2. Формируем словарь, в цикле для каждой записи (строки) массивов добавляем в словарь элемент с ключем фамилия+имя и значением, равным номеру строки в массивах. Для словаря разумно установить сравнение как текст.

3. Считываем в масив(ы) данные из исходной таблицы: фамилия, имя, начало и окончание визы.

4. В цикле для каждой строки массива из п.3:

**Если строка содержит дату начала/окончания и в словаре есть элемент с ключем фамилия+имя

****то присваиваем элементу массива статус с индексом из значения соответствующего элемента словаря, значение "имеет\не имеет" в соответствии с текущей датой

5. Выгружаем массив (перезаписываем данные) в столбец со статусом

Но у меня не хватает знаний записать этот алгоритм кодом... Прошу помощи знатоков. Для Вас думаю это не так уж и сложно)..

Заранее благодарю.