Страница 1 из 2

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

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



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

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

Добавлено: 30 май 2008, 14:02
Aent
А что не работает то ?
Только что проверил. Помещаем в ЭтаКнига код

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

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    With ActiveSheet.PageSetup
        .LeftHeader = "Проверка"
        .CenterHeader = "Страница &P из &N"
        .RightHeader = "Клонтитула"
    End With
End Sub
Жмём Файл->Предварительный просмотр и видим сформированный клонтитул....

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

Добавлено: 02 июн 2008, 06:19
Mint86
Спасибо Aent, вы как всегда правы! Код заработал после того как я убрал все лишние для меня строки. Оставил токо .LeftHeader = "Дата отчёта: &D"
Почему то если вставить весь код то он не работает, может работает слишком долго. Но главное теперь код работает, еще раз огромное спасибо!

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

Добавлено: 02 июн 2008, 08:22
seergy
Возможно ли сделать колонтитулы такого типа
С уважением...

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

Добавлено: 02 июн 2008, 10:02
VictorM
seergy, а зачем велосипед изобретать ?
Все это есть готовое.
**
файл 2 раза перепакован, не получалось по другому загрузить.

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

Добавлено: 02 июн 2008, 10:25
seergy
Все это есть готовое в Worde. А нужно в Excele колонтитулом либо горизонтально, либо вертикально, либо A4, А3 - я сказал зам. директору, что это не возможно для меня на данный момент - уровень не тот и на форуме врядли помогут.
Всё жепопросил уточнить на форуме, срочно надо ....
с уважением...
Да Виктор как сделать грамотно данные шаблоны для макроса копирования из excel в ворд. делаю .dot., тогда проблема решена....

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

Добавлено: 02 июн 2008, 10:55
VictorM
seergy, Вы пишете
Возможно ли сделать колонтитулы такого типа
и прикрепляете DOC_овский файл. И после того, как Вам ответили видим вот такое
Все это есть готовое в Worde. А нужно в Excele
так может сначала определиться - что нужно...

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

Добавлено: 02 июн 2008, 11:26
seergy
Хорошо возьму за правило

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

Добавлено: 02 июн 2008, 12:01
Aent
Mint86,
может работает слишком долго
Да. PageSetup вещь не быстрая :( .
Причём особенно тормозит Application.InchesToPoints из за взаимодействия с драйвером принтера.
В тех случаях когда мне надо установить значение в пойнтах и макрос не переносим я как правило вычисляю значение предварительно и использую константы.
Кстати, для измения параметров страницы иногда бывает удобно воспользоваться XLM функциями. Это значительно быстрее чем PageSetup.

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

Добавлено: 02 июн 2008, 12:15
seergy
Пояснения...