Установка области печати до заполненной ячейки

Устанавливаем при помощи макроса в Excel jобласти печати до последней заполненной ячейки.

Поступила задача продумать и реализовать нумерацию листов с общим их подсчетом. К этом требуется печать документа.

Как говорится «Век живи -век учись»

Открыв присланную книгу Excel, обнаружил, что при помощи»Печати заголовков» можно на каждой странице выводить первые строки, например с 1 по 3.

Ладно. Идем по задаче дальше.

Поискав решения в сети, решил использовать колонтитул для нумерации.

Количество столбцов постоянно т не меняется, а потом, задача упрощается.

Вот что в итоге вышло:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Set rF = Columns("B:G").Find("*", , xlValues, xlWhole, , xlPrevious)
    If Not rF Is Nothing Then
        lLastRow = rF.Row    'Определяем строку
    Else
        'если ничего не найдено, устанавливаем на первую строку
        lLastRow = 1
    End If
    
    ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lLastRow, 7)).Address
   'Можно показать сообщение, что область печати изменилась
   ' MsgBox "Область печати изменена." & Chr(13) & "Будет открыто окно предпросмотра."
    'После сообщения можно и открыть окно просмотра перед печатью
    'Sheets("Лист1").PrintPreview
End Sub

Если выводить какие-либо сообщения, лучше всего повесить событие на кнопку.

Я же ограничился только событием изменения на листе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.