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