Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
369 / 78 / 6
Регистрация: 23.05.2012
Сообщений: 220
1

Отследить момент отправки документа на печать и отменить ее при необходимости

14.06.2012, 10:56. Показов 1944. Ответов 3
Метки нет (Все метки)

Добрый день всем!
Есть ли какая то штатная макропроцедура по типу организации проверок при открытии/закрытии файла, которая бы реагировала на попытку печати документа?
Есть необходимость запретить печать если пользователь не сделает предварительно некоторых действий.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2012, 10:56
Ответы с готовыми решениями:

HP 1320 - при отправки несколько копий одного документа на печать печатается только одна копия
Тема следующая: есть принтер HP 1320, подключенный к компу напрямую и расшаренный на 3 ПК. Со всех...

Не могу отменить печать
Принтер - Samsung ML-1640 Series - отказывается отменять печать. Если залезть в принтеры и факсы и...

Можно ли отменить закрытие документа
всем привет. когда пользователь пытается закрыть несохраненный документ, office предлагает ему:...

Как отследить момент отключения флэшки
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) { if ( Message.Msg ==...

3
Заблокирован
14.06.2012, 11:10 2
Для Excel
Visual Basic
1
2
3
Private Sub Workbook_BeforePrint(Cancel As Boolean)
 
End Sub
Для Word чуть сложнее
Цитата Сообщение от F1
This example prompts the user for a yes or no response before printing any document. This code must be placed in a class module, and an instance of the class must be correctly initialized in order to see this example work; see Using Events with the Application Object for directions on how to accomplish this.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public WithEvents appWord as Word.Application
 
Private Sub appWord_DocumentBeforePrint _
        (ByVal Doc As Document, _
        Cancel As Boolean)
 
    Dim intResponse As Integer
 
    intResponse = MsgBox("Have you checked the " _
        & "printer for letterhead?", _
        vbYesNo)
 
    If intResponse = vbNo Then Cancel = True
End Sub
2
призрак
3261 / 888 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
14.06.2012, 11:11 3
в модуле книги
Private Sub Workbook_BeforePrint(Cancel As Boolean)
1
369 / 78 / 6
Регистрация: 23.05.2012
Сообщений: 220
14.06.2012, 11:36  [ТС] 4
Спасибо, именно то что надо!

Добавлено через 20 минут
Хм...
А начиная с какой версии Excel работает эта функция?
попробовал ее в 2003 - игнорирует вообще ее присутствие

Добавлено через 3 минуты
Пардон!
Разобрался!
Слегка затупил просто
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2012, 11:36

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как отследить момент активации приложения?
Всем привет! Который раз обращаюсь на этот форум, т.к. без ответа не уходил. Такая задача. Нужно...

Как отследить момент нажатия кнопки
Сам медик. Хочу усовершенствовать одну методу по исправлению заикания, но знаний по...

Отследить момент закрытия стороннего процесса
Добрый день. Пишу простенькую консольную программу, в которой нужно реализовать следующий...

Внешняя обработка Печать ценников: ошибка при попытке получения реквизита табличной части документа.
Хочу получить табличную часть товары документа установка цен номенклатуры. &НаКлиенте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.