Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Application.CountA(Лист1.[A1:B5]) < 10 Then
MsgBox "Перестаньте безобразничать", vbCritical, _
"Заполните все нужные ячейки": Cancel = True
End If
End Sub
Как сделать проврку ячеек в Excel
Имеется ввиду. Что лист защищен и разрешено заполнять только незащищенные ячейки ( около 10). Надо чтобы, если хоть одна ячейка не заполнена то выводилось сообщение с предупреждением. Или документ нельзя было отправить на печать или сохранить. Но достаточно и первого варианта с предупреждением.
Код:
Примечание :
- Рабочий лист с кодовым именем Лист1 (не путайте с именем рабочего листа, которое отображается в ярлычке) использован только в качестве примера. То же самое относится и к диапазону "A1:B5"
- Есть и другой вариант, например, ввести в любую ячейку (за исключением A1:B5), такую формулу =ЕСЛИ(СЧЁТЗ(A1:B5)<10;"Заполните все нужные ячейки";"Можно печатать") и использовать её в качестве предупреждения.
А как сделать так чтобы он не давал распечатать только один лист. Ну т.е. проверяет данные на листе( все ли ячейки заполнены) и разрешает или нет печатать. А то получается пока я на одном листе все не заполню, мне другие и распечатать то нельзя.
Замените кодовое имя конкретного рабочего листа на ActiveSheet, в таком случае перед печатью/просмотром макрос будет проверять правильность заполнения нужных ячеек только в активном рабочем листе, и если всё правильно, то Вы сможете распечатать необходимый лист.