Добрый день !!! столкнулся с такой проблемой, думаю что решение простое , но не пойму как сделать есть документ excel заданы области печати, то есть при распечатке , все страницы по очереди на весь лист .... все красиво задача:нужно искать определенную строку на этом листе после того как курсор встанет в нужную ячейку, распечатать нужно именно текущий лист в стандартных настройка печати не нашел либо все печатать, либо отдельные листы по номерам ( при поиске я номера не знаю на котором найдется нужная запись) либо все выделять , но мне нужно именно ту страницу(полностью) которая задана областями печати ?
зы. сильно не пинайте ...
Добрый день !!! столкнулся с такой проблемой, думаю что решение простое , но не пойму как сделать есть документ excel заданы области печати, то есть при распечатке , все страницы по очереди на весь лист .... все красиво задача:нужно искать определенную строку на этом листе после того как курсор встанет в нужную ячейку, распечатать нужно именно текущий лист в стандартных настройка печати не нашел либо все печатать, либо отдельные листы по номерам ( при поиске я номера не знаю на котором найдется нужная запись) либо все выделять , но мне нужно именно ту страницу(полностью) которая задана областями печати ?
как курсор встанет в нужную ячейку, распечатать нужно именно текущий лист не понял. у вас в ячейках имена листов?
я наверное не правильно выразился , имел в виду лист на распечатку а не лист ехеля если грубо есть таблица 1 один 2 два 3 три ... 400 четыреста 405 четыреста пять и т.д допустим при выводе на печать, на первом листе на принтер выходят записи от 1 до 50, на автором от 50 до 100 в документе эти листы разбиты пунктирными линиями (области печати)
я к примеру нахожу поиском строку 57, мне нужно чтобы распечатался только второй лист ....
как курсор встанет в нужную ячейку, распечатать нужно именно текущий лист не понял. у вас в ячейках имена листов?
я наверное не правильно выразился , имел в виду лист на распечатку а не лист ехеля если грубо есть таблица 1 один 2 два 3 три ... 400 четыреста 405 четыреста пять и т.д допустим при выводе на печать, на первом листе на принтер выходят записи от 1 до 50, на автором от 50 до 100 в документе эти листы разбиты пунктирными линиями (области печати)
я к примеру нахожу поиском строку 57, мне нужно чтобы распечатался только второй лист ....Marat_Best
Нужен пример, тогда проще понять задачу. Ваши действия с приложенным файлом с примером. Сделайте разметку страницы. На листе появится разметка области с 1 по 50 строку. В столбце В в 51 или любую другую ставите галочку v. Разметка поменяется. На печать пойдет область начиная со строки с галочкой и высотой 50 строк. С1 служебная ячейка, можно сделать скрытой
Нужен пример, тогда проще понять задачу. Ваши действия с приложенным файлом с примером. Сделайте разметку страницы. На листе появится разметка области с 1 по 50 строку. В столбце В в 51 или любую другую ставите галочку v. Разметка поменяется. На печать пойдет область начиная со строки с галочкой и высотой 50 строк. С1 служебная ячейка, можно сделать скрытойAlexM
Sub Печать_Акт_лист() Dim wks As Worksheet Set wks = ActiveSheet
Dim i As Integer, X As Integer, Y As Integer, n As Integer
For i = 1 To wks.HPageBreaks.Count If wks.HPageBreaks(i).Location.row > ActiveCell.row Then Y = i Exit For End If Next i If Y = 0 Then Y = wks.HPageBreaks.Count + 1
For i = 1 To wks.VPageBreaks.Count If wks.VPageBreaks(i).Location.Column > ActiveCell.Column Then X = i Exit For End If Next i If X = 0 Then X = wks.VPageBreaks.Count + 1
If wks.PageSetup.Order = xlDownThenOver Then n = (X - 1) * (wks.HPageBreaks.Count + 1) + Y Else n = (Y - 1) * (wks.VPageBreaks.Count + 1) + X End If
wks.PrintOut n, n End Sub
[/vba] или выделить нужный фрагмент и нажать
Есть два варианта: Макросом: [vba]
Код
Sub Печать_Акт_лист() Dim wks As Worksheet Set wks = ActiveSheet
Dim i As Integer, X As Integer, Y As Integer, n As Integer
For i = 1 To wks.HPageBreaks.Count If wks.HPageBreaks(i).Location.row > ActiveCell.row Then Y = i Exit For End If Next i If Y = 0 Then Y = wks.HPageBreaks.Count + 1
For i = 1 To wks.VPageBreaks.Count If wks.VPageBreaks(i).Location.Column > ActiveCell.Column Then X = i Exit For End If Next i If X = 0 Then X = wks.VPageBreaks.Count + 1
If wks.PageSetup.Order = xlDownThenOver Then n = (X - 1) * (wks.HPageBreaks.Count + 1) + Y Else n = (Y - 1) * (wks.VPageBreaks.Count + 1) + X End If
wks.PrintOut n, n End Sub
[/vba] или выделить нужный фрагмент и нажать SLAVICK
Почему? Смотрите файл. Порядок действий - ищете поиском (как хотели), после того, как нашли, жмете F2 и Ентер, а затем отправляете на печать. Возможно, что при отправке на печать автообновление будет само делаться и тогда F2 и Ентер жать не нужно. У меня на работе возможности проверить нет Чтобы посмотреть как работает - нажмите Контрл F3. Попадете в именованные диапазоны, там формула
Почему? Смотрите файл. Порядок действий - ищете поиском (как хотели), после того, как нашли, жмете F2 и Ентер, а затем отправляете на печать. Возможно, что при отправке на печать автообновление будет само делаться и тогда F2 и Ентер жать не нужно. У меня на работе возможности проверить нет Чтобы посмотреть как работает - нажмите Контрл F3. Попадете в именованные диапазоны, там формула
Sub PrintCurrentPage_() For i = 1 To ActiveSheet.HPageBreaks.Count If ActiveCell.Row < ActiveSheet.HPageBreaks(i).Location.Row - 1 Then Exit For Next ActiveSheet.PrintOut i, i 'MsgBox i End Sub
[/vba]
У меня тоже есть вариант [vba]
Код
Sub PrintCurrentPage_() For i = 1 To ActiveSheet.HPageBreaks.Count If ActiveCell.Row < ActiveSheet.HPageBreaks(i).Location.Row - 1 Then Exit For Next ActiveSheet.PrintOut i, i 'MsgBox i End Sub
По своей природе человек ленив и я не исключение. И, поскольку, у уважаемого Marat_Best границы проставлены загодя, не вижу смысла усложнять код.pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
на первом листе на принтер выходят записи от 1 до 50, на автором от 50 до 100
Я так и сделал. И файла нет. А так можно подумать, но, скорее всего, или запрос на разрешение макросов, или какие-то метки окончания листов, или еще что-нибудь.
на первом листе на принтер выходят записи от 1 до 50, на автором от 50 до 100
Я так и сделал. И файла нет. А так можно подумать, но, скорее всего, или запрос на разрешение макросов, или какие-то метки окончания листов, или еще что-нибудь._Boroda_
так я же без претензий - просто интересно может как-то допилить эту функцию, чтобы весь лист показывала, но скорее всего не выйдет, поскольку формула пока не определяет границы листа...
[offtop]Форумы ведь для чего? чтоб что то интересное почерпнуть, помогать друг другу, решать задачи, не скучать... [/offtop]
так я же без претензий - просто интересно может как-то допилить эту функцию, чтобы весь лист показывала, но скорее всего не выйдет, поскольку формула пока не определяет границы листа...
[offtop]Форумы ведь для чего? чтоб что то интересное почерпнуть, помогать друг другу, решать задачи, не скучать... [/offtop]SLAVICK