Я не хочу обсуждать само решение по формирования файла, файл есть как есть.
Из файла печатается огромное кол-во документов.
Помогите сделать 2 кнопки на листе "Документ"
"Печать" "Печать сразу на принтер"
Которая будет отправлять страницу на печать, со следующим условием:
Если значение ячейки К4
К4 <= 31 печатаем страницы с 1 по 1 К4 в диапазоне 32 - 72 печатаем страницы с 1 по 2 К4 в диапазоне 73 - 113 печатаем страницы с 1 по 3 каждый следующие 41 добавляет страницу
Заранее спаибо!
Доброго времени суток!
Я не хочу обсуждать само решение по формирования файла, файл есть как есть.
Из файла печатается огромное кол-во документов.
Помогите сделать 2 кнопки на листе "Документ"
"Печать" "Печать сразу на принтер"
Которая будет отправлять страницу на печать, со следующим условием:
Если значение ячейки К4
К4 <= 31 печатаем страницы с 1 по 1 К4 в диапазоне 32 - 72 печатаем страницы с 1 по 2 К4 в диапазоне 73 - 113 печатаем страницы с 1 по 3 каждый следующие 41 добавляет страницу
mikaelw, здравствуйте! Как положить кнопку на лист и назначить ей макрос вы знаете, надеюсь. А вот примерный код для второй кнопки (с первой проблем нету?)
Sub КНОПА2_ЩЁЛК()
ActiveSheet.PrintOut 1, ([K4] + 50) \ 41 EndSub
mikaelw, здравствуйте! Как положить кнопку на лист и назначить ей макрос вы знаете, надеюсь. А вот примерный код для второй кнопки (с первой проблем нету?)
Sub КНОПА2_ЩЁЛК()
ActiveSheet.PrintOut 1, ([K4] + 50) \ 41 EndSub
несколько не соответствует действительности, то код будет такой
Sub мяу() Dim i&, k& With ActiveSheet
k = 1 If .HPageBreaks.Count Then For i = 1To .HPageBreaks.Count If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10Then k = k + 1 Next EndIf
.PrintOut 1, k EndWith EndSub
Или такой
Sub мяв() Dim lr& With ActiveSheet
lr = .Columns(1).Find("*", , xlValues, , xlByRows, xlPrevious).Row
.PageSetup.PrintArea = "A1:K" & lr
.PrintOut EndWith EndSub
несколько не соответствует действительности, то код будет такой
Sub мяу() Dim i&, k& With ActiveSheet
k = 1 If .HPageBreaks.Count Then For i = 1To .HPageBreaks.Count If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10Then k = k + 1 Next EndIf
.PrintOut 1, k EndWith EndSub
Или такой
Sub мяв() Dim lr& With ActiveSheet
lr = .Columns(1).Find("*", , xlValues, , xlByRows, xlPrevious).Row
.PageSetup.PrintArea = "A1:K" & lr
.PrintOut EndWith EndSub
Dim i&, k& With ActiveSheet
k = 1 If .HPageBreaks.Count Then For i = 1To .HPageBreaks.Count If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10Then k = k + 1 Next EndIf
Application.Dialogs(xlDialogPrint).Show 1, 1, k EndWith
EndSub
P.S. Как правильно оформить сообщение, чтоб текст макроса был правильно виден?
Dim i&, k& With ActiveSheet
k = 1 If .HPageBreaks.Count Then For i = 1To .HPageBreaks.Count If .HPageBreaks(i).Location.Row < .Range("K5").Value + 10Then k = k + 1 Next EndIf
Application.Dialogs(xlDialogPrint).Show 1, 1, k EndWith
EndSub
P.S. Как правильно оформить сообщение, чтоб текст макроса был правильно виден?mikaelw
Сообщение отредактировал mikaelw - Пятница, 10.04.2020, 21:14