Excel VBA Макросы: Перехват клавиши Delete просто в листе (ФОРМЫ НЕТ)

Автор Al_Brutal, 26 сентября 2017, 23:28

Al_Brutal

Добрый день!
Следующее задание: Создать инструмент для возможности внесения персональных данных в таблицу. Вся работа в Excel, работать с документом будут по всей стране люди с разным опытом работы с офисными приложениями и на разных аппаратных мощностях. Попытался максимально навешать условий на вводимые данные (чтобы юзверю меньше было возможностей на косарезы) и сделать всё без применения форм, а лишь с использованием инструментов:
1) "Данные"->"Проверка данных"
2) макроса в основном Worksheet_Change.

Получилось следующее - в документе 2 листа.
На первом листе в первом столбике хранятся порядка 100 характеристик работника (от личных данных до его перемещений по карьерной лестнице)
                        во втором столбике пустые ячейки с различными условиями для ввода характеристик (реализовано с помощью инструментов, описанных выше)
                        в самом низу под таблицей кнопка "Добавить запись"
На втором листе таблица с первого листа транспонирована горизонтально = характеристики (1я строка) и данные людей (со 2й и так далее строки). Соответственно сюда данные попадают после нажатия на первом листе кнопки "Добавить запись".

Проблема  Обнаружился момент-если на первом листе оператор ввёл данные с ошибкой, увидел это и нажал на Delete, то макрос Worksheet_Change логично определяет это действие как изменение в ячейке и соответственно отрабатывает все заложенные в алгоритме условия if ... then .... end if.
Вопрос   Каким образом без формы, а лишь с голым по сути листом, мне перехватить нажатие Delete, чтобы закинуть его в условие отработки/неотработки if ... then .... end if? (повторюсь формы нет).

Администратор

Можно использовать косвенный метод - проверяйте, пусто в ячейке или нет. Если пусто, значит юзер очистил ячейку.

Вообще я не делаю макросы для листов-форм, т.к. для меня это сложно - я не представляю, что нужно учитывать при создании листа-формы: юзер ведь может удалить/вставить строки, может выделить несколько ячеек и их удалить/сместить/что-то в них вписать и тому подобное.