Страницы: 1
RSS
Печать разных страниц
 
Подскажите пожалйста, как можно отправить на печать определенные страницы (как в word). Например 1,3,4,6,9 и т.д. Или "только четные" или "нечетные" что то в этом роде. Просто у принтера нет "двухсторонней печати", а печатать по одному листку ОЧЕНЬ долго.  
 
 
СПАСИБО!!!
 
макросом
 
--------------------------------  
Attribute VB_Name = "PrintList"  
Private Sub ПечатьЧНС()  
 
'*******************************************************  
' ПечатьЧНС  
' Макрос записан 17.01.1998  
' Автор Климов Павел Юрьевич  
 
' http://www.msoffice.nm.ru  
'*******************************************************  
 
Количество = ExecuteExcel4Macro("GET.DOCUMENT(50)")  
 
If Количество = 0 Then  
  MsgBox Prompt:="Нет данных для вывода на печать", _  
  Buttons:=vbCritical, Title:=""  
  Exit Sub  
End If  
 
Первый = Application.InputBox( _  
        Prompt:="Введите номер первой страницы", _  
        Title:="Печать", Type:=1)  
Последний = Application.InputBox( _  
        Prompt:="Введите номер последней страницы", _  
        Title:="Печать", Type:=1)  
 
If Первый < 1 Or _  
  Первый > Количество Then Первый = 1  
If Последний < Первый Or _  
  Последний > Количество Then Последний = Количество  
 
For Лист = Первый To Последний Step 2  
   Application.ActiveSheet.PrintOut From:=Лист, To:=Лист  
Next  
 
If MsgBox(Prompt:="Хотите ли Вы продолжить печать ?", _  
  Buttons:=vbYesNo, Title:="") = vbNo Then  
  Exit Sub  
Else  
  MsgBox Prompt:="Переверните листы и нажмите 'ОК'", _  
  Buttons:=vbOKOnly, Title:=""  
End If  
 
For Лист = Первый + 1 To Последний Step 2  
   Application.ActiveSheet.PrintOut From:=Лист, To:=Лист  
Next  
 
End Sub  
--------------------------------
<FONT COLOR="CadetBlue">
 
Спасибо, только я "чайник" и не смогу сделать макрос, пробовал - не получается.  
 
Может кто поможет, плиз
 
Так макрос Вам уже предоставили! Необходимо только вставить его в Вашу книгу Excel. Давайте её сюда (не более 100 Kb, Excel 2003)
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Здравствуйте!!! А можно как-нибудь без макроса напечатать книгу, в которой содержится 376 листов, при этом надо чтобы шапка первого листа распространялась на все страницы первого листа, второго на все страницы второго и так далее для всех 376 листов.
 
Здравствуйте. В 2003  
Меню Файл-параметры страницы-Лист-сквозные строки.
Я сам - дурнее всякого примера! ...
 
Здравствуйте. В 2003  
Меню Файл-параметры страницы-Лист-сквозные строк  
Спасибо. Но этот способ мне не подходит, т.к.  когда я выполнила эту процедуру сквозные строки ставятся только для всех страниц 1 листа, а на остальные 375 не распространяется.
 
Вы помните свой вопрос? Ладно, уточним: У Вас на всех листах будет одинаковое к-во сквозных строк?
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=07.08.2010 11:40}{thema=}{post}Вы помните свой вопрос? Ладно, уточним: У Вас на всех листах будет одинаковое к-во сквозных строк?{/post}{/quote}  
 
 
У меня документ, состоящий из 376 листов. В каждом листе разное количество страниц. Мне нужно одним действие распечать мой документ.НО!!!Когда он распечатался, шапка была только на 1 листе на всех страницах, и то только потому, что я задала печать сквозных строк.Мне нужно чтобы шапка первого листа распечатывалась на всех страницах первого листа, шапка второго листа на всех страницах второго листа...и так на всех 376 листах.Количество сквозных строк одинаковое на всех листах, единственное внутри этой шапки есть объединенные ячейки.
 
Вот это выполните один раз:  
Sub Zag()  
' Макрос записан 07.08.2010 (Sergey)  
   Dim Sh As Worksheet  
   For Each Sh In ThisWorkbook.Worksheets  
       With Sh.PageSetup  
           .PrintTitleRows = "$1:$3" ' Сюда подставите номера первой и последней сквозной строки  
           .PrintTitleColumns = ""  
       End With  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=07.08.2010 11:54}{thema=}{post}Вот это выполните один раз:  
Sub Zag()  
' Макрос записан 07.08.2010 (Sergey)  
   Dim Sh As Worksheet  
   For Each Sh In ThisWorkbook.Worksheets  
       With Sh.PageSetup  
           .PrintTitleRows = "$1:$3" ' Сюда подставите номера первой и последней сквозной строки  
           .PrintTitleColumns = ""  
       End With  
   Next  
End Sub{/post}{/quote}  
 
По-русски пожалуйста)))  
А можно как-нибудь без макроса???  
Когда я записываю макрос я потом не могу его вызвать на другой документ? в чем дело? И все-таки по-поводу распечатки всех листов, может можно это делать в openoffice?
 
"Когда я записываю макрос я потом не могу его вызвать на другой документ?" - это вопрос?  
"может можно это делать в openoffice?" - с этим вопросом на Форум по Оpenoffice.
 
{quote}{login=Юрий М}{date=07.08.2010 12:20}{thema=}{post}"Когда я записываю макрос я потом не могу его вызвать на другой документ?" - это вопрос?  
"может можно это делать в openoffice?" - с этим вопросом на Форум по Оpenoffice.{/post}{/quote}  
 
1) вопрос  
2) про openoffice предположение
 
Светлана 777, я не понимаю Вас, что куда записывать вызывать? Скопируйте макрос в общий модуль Вашей книги и выполните его один раз. После этого можете его удалить.  
На всех листах появятся сквозные строки.
Я сам - дурнее всякого примера! ...
 
В общем случае макрос сработает для того документа, в котором он записан. Если нужно обработать 2-3 книги - скопируйте этот макрос в каждую. Если Книг много - возможен другой подход: макросом из "отдельной" Книги вызывается нужная, и макрос работает с ней.
 
KuklP Спасибо за ответы.Но я тоже не понимаю Dim Sh As Worksheet  
For Each Sh In ThisWorkbook.Worksheets  
With Sh.PageSetup  
.PrintTitleRows = "$1:$3" ' Сюда подставите номера первой и последней сквозной строки  
.PrintTitleColumns = ""  
End With  
Next  
End Sub  
ЭТО ЧТО??? КУДА ЭТО ВСЕ ПИСАТЬ??? а мои листы как не печатались, так наверное и не распечатаются НИКОГДА!!! Простите конечно, но я очень далека от программирования и пишу вам своим простым обывательским языком. А от того что вы не понимаете меня, я злюсь еще больше. Я в отчаянии.  
Для Юрия М принцип работы макроса я знаю, я не могу его вызвать на другой документ сочетанием клавиш, не получается.
 
Я вижу, что Сергея сейчас нет в Сети...  
Светлана, в Вашей Книге нажимаем Alt+F11. Откроется окно редактора.  
Insert - Module. Появится пустой модуль.  
Скопируйте в него текст, который предложил Сергей.  
Запустите этот макрос
 
Спасибо, Сергей, Юрий в понедельник вечером напишу результат, сейчас просто уже сил нет всем этим заниматься!!!
 
На первой странице - инструкция.  
На страницах правее - таблица: ширина  - 3 листа, длина таблицы (количество листов) зависит от количества внесенных данных.  
 
Чтобы не печатать пустые страницы (под инструкцией), нарисовал такое:  
Sub Print_()  
Dim n As Long, i As Long  
   Application.ScreenUpdating = False  
   With Worksheets("tabl")  
       .Activate  
       .PrintOut From:=1, To:=1  
       n = ExecuteExcel4Macro("GET.DOCUMENT(50)")  
       i = n / 4 + 1  
       .PrintOut From:=i, To:=n  
   End With  
   Worksheets("кнопка").Activate  
   Application.ScreenUpdating = True  
End Sub  
 
Печатается первый лист и все листы таблицы.  
Есть другие варианты определения числа страниц? Можно процедуру организовать проще?
 
Виктор, попробуй:  
 
Sub Print_()  
   With Worksheets("tabl")  
       .PrintOut From:=1, To:=1  
       .PrintOut From:=.HPageBreaks.Count + 2  
   End With  
End Sub  
 
.HPageBreaks.Count - число горизонтальных разрывов страниц. Соответственно, страниц по вертикали .HPageBreaks.Count+1, а номер первой страницы во втором столбце страниц .HPageBreaks.Count + 2.  
Если параметр To: не указан, печать идет до последней страницы.
 
Спасибо, попробую. Смысл понятен.
 
Порядок. Вопрос решен.
Страницы: 1
Читают тему
Loading...