запрет печати лист екселя
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.141] |
|
|
Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Общие вопросы
Особенности VBA-кода
Оптимизация VBA-кода
Полезные ссылки
запрет печати лист екселя
|
Сообщ.
#1
,
|
|
|
|
Как запрограммировать запрет печатать первый лист в экселе?
У меня есть такой вариант, но не факт, что верный ![]() ![]() Private Sub CheckPrinter() If Worksheet("Лист1") Then MsgBox "Нельзя печатать этот лист!" Printer.Enabled = False End If End Sub подскажите, пожалуйста, как правильно? |
|
Сообщ.
#2
,
|
|
|
|
Факт, что не верный - ибо ни к чему не привязано.
Среди событий, связанных с печатью, есть только Workbook_BeforePrint, но там нет возможности определить, что именно печатается. Придётся, видимо, переопределять штатный PrintOut. |
|
Сообщ.
#3
,
|
|
|
|
можно попробовать нечто вроде:
![]() ![]() Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True Application.EnableEvents = False If MsgBox("Первый лист не может быть напечатан. Печатать оставшиеся?", vbYesNo) = vbYes Then PrintOut 2 Application.EnableEvents = True End Sub |
|
Сообщ.
#4
,
|
|
|
|
Old Bat, а если чел печатает другой лист? а если всю книгу? из этого методы ты штатно НИКАК не определишь, что собсно послано в печать.
|
|
Сообщ.
#5
,
|
|
|
|
согласен, это простейший вариант при печати всей книги
иначе - можно наваять собственную форму печати |
|
Сообщ.
#6
,
|
|
|
|
Цитата Old Bat @ это простейший вариант при печати всей книги Нет. Workbook_BeforePrint вызывается при ЛЮБОЙ печати - даже если ты собираешься вывести на печать одну ячейку. |
|
Сообщ.
#7
,
|
|
|
|
я и не говорил, что он вызывается ТОЛЬКО при печати всей книги, но если нужно печатать всю книгу (без 1 листа) - этот вариант проходит, иначе - пляшем с бубном
|
|
Сообщ.
#8
,
|
|
|
|
Цитата Old Bat @ я и не говорил, что он вызывается ТОЛЬКО при печати всей книги Ну создалося у меня такое впечатление... бывает. |
|
Сообщ.
#9
,
|
|
|
|
Ой, спасибо большое, Вам за помощь, сейчас будем пробовать.
Я немного не могу понять в чем спор, но у меня стоит задание: объект Excel/Application реагирует на событие: при попытке распечатать первый лист рабочей книги выдается предупреждающее сообщение о запрете печати. |
|
Сообщ.
#10
,
|
|
|
|
В таком случае способ имхо один - сабклассить объект и обрабатывать его PrintOut самостоятельно.
|
|
Сообщ.
#11
,
|
|
|
|
а речь, часом, не о запрете печати листа с ограниченными разрешениями ?? Если да, то задача значительно упрощается
|
|
Сообщ.
#12
,
|
|
|
|
А подскажите поподробнее о запрете печати листа с ограниченными разрешениями
|
|
Сообщ.
#13
,
|
|
|
|
Управление правами на доступ к данным (Information Rights Management, IRM)
подробно не возился, но вроде бы данная технология позволяет решить сабж http://www.oszone.net/print/4134/ |