01 Что делает макрос
Не дает закрыть книгу пользователю, пока целевая ячейка не будет заполнена с помощью макроса.
Этот код срабатывает на событие BeforeClose книги. При попытке закрыть книгу, это событие выполняет код внутри макроса. Макрос проверяет целевую ячейку (в нашем случае С18). Если она пустая, процесс закрытия отменяется. Если ячейка С18 не пустая, книга сохраняется и закрывается.
02 Код макроса
Private
Sub
Workbook_BeforeClose(Cancel
As
Boolean
)
'Шаг 1: Проверяем пустая ли ячейка C18
If
Sheets(
"Лист1"
).Range(
"C18"
).Value =
""
Then
'Шаг 2: Если пустая, отменить закрытие книги
Cancel =
True
MsgBox
"Ячейка C18 не может быть пустой"
'Шаг 3: Если не пустая, сохранить и закрыть
Else
ActiveWorkbook.Close SaveChanges:=
True
End
If
End
Sub
03 Как работает макрос
1. Проверяем ячейку C18 на пустоту (можете заменить любую другую).
2. Если ячейка пустая, то отменяем событие закрытия книги, закрывает и сообщает пользователю.
3. Показываем окно сообщения, уведомляющее пользователя о том, что нужно заполнить ячейку.
4. Если ячейка C18 не пустая, файл сохраняется и закрывается.
04 Как использовать
Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose. Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием Excel-файла.
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code.
4. В левой верхней части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью).
5. В правом верхнем выпадающем списке выберите свойство BeforeClose
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь