Изменить колонтитулы перед печатью

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

Помогите пожалуйста с кодом. Задача простая, надо изменить (или добавить) колонтитулы листа перед печатью. Ниже приведенный код не работает. В чем касяк?



Private Sub Workbook_BeforePrint(Cancel As Boolean)

With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With

ActiveSheet.PageSetup.PrintArea = "$A$3:$DK$201"

With Sheet.PageSetup
.LeftHeader = "Дата отчёта: &D"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.118110236220472)
.FooterMargin = Application.InchesToPoints(0.118110236220472)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 68
.PrintErrors = xlPrintErrorsDisplayed
End With
ThisWorkbook.Save

End Sub
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

А что не работает то ?
Только что проверил. Помещаем в ЭтаКнига код

Код: Выделить всё

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    With ActiveSheet.PageSetup
        .LeftHeader = "Проверка"
        .CenterHeader = "Страница &P из &N"
        .RightHeader = "Клонтитула"
    End With
End Sub
Жмём Файл->Предварительный просмотр и видим сформированный клонтитул....
Андрей Энтелис,
aentelis.livejournal.com
Аватара пользователя
Mint86
Сообщения: 127
Зарегистрирован: 04 мар 2008, 11:47

Спасибо Aent, вы как всегда правы! Код заработал после того как я убрал все лишние для меня строки. Оставил токо .LeftHeader = "Дата отчёта: &D"
Почему то если вставить весь код то он не работает, может работает слишком долго. Но главное теперь код работает, еще раз огромное спасибо!
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Возможно ли сделать колонтитулы такого типа
С уважением...
Вложения
ПМООС исходник.zip
(28.11 КБ) 24 скачивания
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

seergy, а зачем велосипед изобретать ?
Все это есть готовое.
**
файл 2 раза перепакован, не получалось по другому загрузить.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Все это есть готовое в Worde. А нужно в Excele колонтитулом либо горизонтально, либо вертикально, либо A4, А3 - я сказал зам. директору, что это не возможно для меня на данный момент - уровень не тот и на форуме врядли помогут.
Всё жепопросил уточнить на форуме, срочно надо ....
с уважением...
Да Виктор как сделать грамотно данные шаблоны для макроса копирования из excel в ворд. делаю .dot., тогда проблема решена....
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

seergy, Вы пишете
Возможно ли сделать колонтитулы такого типа
и прикрепляете DOC_овский файл. И после того, как Вам ответили видим вот такое
Все это есть готовое в Worde. А нужно в Excele
так может сначала определиться - что нужно...
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Хорошо возьму за правило
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Mint86,
может работает слишком долго
Да. PageSetup вещь не быстрая :( .
Причём особенно тормозит Application.InchesToPoints из за взаимодействия с драйвером принтера.
В тех случаях когда мне надо установить значение в пойнтах и макрос не переносим я как правило вычисляю значение предварительно и использую константы.
Кстати, для измения параметров страницы иногда бывает удобно воспользоваться XLM функциями. Это значительно быстрее чем PageSetup.
Андрей Энтелис,
aentelis.livejournal.com
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Пояснения...
Вложения
Колонтитулы.zip
(49.76 КБ) 21 скачивание
Ответить