На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> запрет печати лист екселя
    Как запрограммировать запрет печатать первый лист в экселе?

    У меня есть такой вариант, но не факт, что верный
    ExpandedWrap disabled
      Private Sub CheckPrinter()
      If Worksheet("Лист1") Then
      MsgBox "Нельзя печатать этот лист!"
      Printer.Enabled = False
      End If
      End Sub


    подскажите, пожалуйста, как правильно?
      Факт, что не верный - ибо ни к чему не привязано.
      Среди событий, связанных с печатью, есть только Workbook_BeforePrint, но там нет возможности определить, что именно печатается. Придётся, видимо, переопределять штатный PrintOut.
        можно попробовать нечто вроде:
        ExpandedWrap disabled
          Private Sub Workbook_BeforePrint(Cancel As Boolean)
          Cancel = True
          Application.EnableEvents = False
          If MsgBox("Первый лист не может быть напечатан. Печатать оставшиеся?", vbYesNo) = vbYes Then PrintOut 2
          Application.EnableEvents = True
          End Sub
          Old Bat, а если чел печатает другой лист? а если всю книгу? из этого методы ты штатно НИКАК не определишь, что собсно послано в печать.
            согласен, это простейший вариант при печати всей книги
            иначе - можно наваять собственную форму печати
              Цитата Old Bat @
              это простейший вариант при печати всей книги

              Нет. Workbook_BeforePrint вызывается при ЛЮБОЙ печати - даже если ты собираешься вывести на печать одну ячейку.
                я и не говорил, что он вызывается ТОЛЬКО при печати всей книги, но если нужно печатать всю книгу (без 1 листа) - этот вариант проходит, иначе - пляшем с бубном
                  Цитата Old Bat @
                  я и не говорил, что он вызывается ТОЛЬКО при печати всей книги

                  Ну создалося у меня такое впечатление... бывает.
                    Ой, спасибо большое, Вам за помощь, сейчас будем пробовать.
                    Я немного не могу понять в чем спор, но у меня стоит задание:
                    объект Excel/Application реагирует на событие:
                    при попытке распечатать первый лист рабочей книги выдается предупреждающее сообщение о запрете печати.
                      В таком случае способ имхо один - сабклассить объект и обрабатывать его PrintOut самостоятельно.
                        а речь, часом, не о запрете печати листа с ограниченными разрешениями ?? Если да, то задача значительно упрощается
                          А подскажите поподробнее о запрете печати листа с ограниченными разрешениями
                            Управление правами на доступ к данным (Information Rights Management, IRM)

                            подробно не возился, но вроде бы данная технология позволяет решить сабж

                            http://www.oszone.net/print/4134/
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,1293 ]   [ 15 queries used ]   [ Generated: 7.11.25, 22:54 GMT ]