Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Печать чётных и не чётных страниц в excel 2010

Ответить
Настройки темы
2010 - [решено] Печать чётных и не чётных страниц в excel 2010

Ветеран


Сообщения: 2196
Благодарности: 727


Конфигурация

Профиль | Отправить PM | Цитировать


Для экономии бумаги нужно распечатать документ excel 2010 на обеих страницах. В word эта функция присутствует, в excel к сожалению этой функции не нашел.
В гугле есть вариант по переводу *.xlsx в *.pdf, распечатывать чётные и не чётные страницы просмотрщиком *.pdf.
Возможно есть иной способ?

Отправлено: 10:06, 16-04-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sov44, ну, а макросом попробовать — чётные/нечётные?

Отправлено: 12:12, 16-04-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата Iska:
макросом попробовать — чётные/нечётные? »
Iska, с excel я пока на вы. С написанием макросов не знаком.

Отправлено: 12:32, 16-04-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Наподобие (не проверялось):
Код: Выделить весь код
Option Explicit

Sub PrintOdd()
    Dim i As Integer
    
    With ActiveSheet
        For i = 1 To (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1) Step 2
            .PrintOut From:=i, To:=i
        Next
    End With
End Sub

Sub PrintEven()
    Dim i As Integer
    
    With ActiveSheet
        For i = 2 To (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1) Step 2
            .PrintOut From:=i, To:=i
        Next
    End With
End Sub

Последний раз редактировалось Iska, 16-04-2014 в 19:06. Причина: Убрано лишнее (добавил «With ActiveSheet», а внутри него этот самый «ActiveSheet» позабыл убрать ;)).

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:58, 16-04-2014 | #4


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Iska, не получается победить макрос.
Приходится в каждом документе создавать макрос, как сделать так, чтобы функция печати не чётных и чётных страниц была во всех документах excel?
Из 4 страниц при запуске PrintOdd печатается первая страница, при запуске PrintEven печатается 2 и 4. Третья страница теряется, проверял пару раз. (не исключаю, что это локальная проблем с железом) Приходится вручную переворачивать каждую страницу, что не есть гут (нужно распечатывать документы до 200 страниц). Рассчитывал, что макрос напечатает сначала все нечётные страницы, я переложу пачку бумаги обратно в лоток, макрос напечатает все чётные страницы ...

Последний раз редактировалось sov44, 17-04-2014 в 18:31.


Отправлено: 13:29, 17-04-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата sov44:
Приходится в каждом документе создавать макрос, как сделать так, чтобы функция печати не чётных и чётных страниц была во всех документах excel? »
Copy your macros to a Personal Macro Workbook - Excel

Цитата sov44:
Из 4 страниц при запуске PrintOdd печатается первая страница, »
Выложите документ. Должна печататься первая, затем третья.

Цитата sov44:
Рассчитывал, что макрос напечатает сначала все нечётные страницы, я переложу пачку бумаги обратно в лоток, макрос напечатает все чётные страницы ... »
Основной вопрос в конкретно взятом принтере — как он раскладывает отпечатанные листы. Потому я привёл лишь общий принцип печати нечётных и чётных страниц.

Пример для типичного лазерного принтера, с прямой печатью нечётных страниц и обратной печатью чётных страниц:
Код: Выделить весь код
Option Explicit

Sub PrintOddAndEven()
    Dim i As Integer
    
    With ActiveSheet
        For i = 1 To ExecuteExcel4Macro("Get.Document(50)") Step 2
            Debug.Print i
            
            .PrintOut From:=i, To:=i, Copies:=1, Preview:=True
        Next
    
        If (ExecuteExcel4Macro("Get.Document(50)")) Mod 2 = 1 Then
            MsgBox "Replace paper into printer to print even pages and remove topsheet", vbInformation + vbOKOnly, "Print even pages"
        Else
            MsgBox "Replace paper into printer to print even pages", vbInformation + vbOKOnly, "Print even pages"
        End If
    
        For i = ExecuteExcel4Macro("Get.Document(50)") To 2 Step -2
            Debug.Print i
            
            .PrintOut From:=i, To:=i, Copies:=1, Preview:=True
        Next
    End With
End Sub
При общем нечётном числе страниц требуется «ручками» убрать верхний лист (с последней нечётной страницей) после первого прохода (печати нечётных страниц), о чём делается соответствующее уведомление.

В принципе, можно сделать очень многое, если вертеть в руках достаточно долго очень захотеть. Несколько лет назад я делал вариант печати брошюры A5 на листах формата A4 из-под Microsoft Access. Так там пришлось ажник в четыре прохода делать печать.

Отправлено: 14:21, 19-04-2014 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Из письма в PM:
Цитата sov44:
Привет! Образцы файлов excel здесь была ссылка, OS- Windows XP SP3 x86, принтер MF3110, печатаю по сети. Надеюсь на помощь!
Опробовал вышеприведённый код:
Код: Выделить весь код
Option Explicit

Sub PrintOddAndEven()
    Dim i As Integer
    
    With ActiveSheet
        For i = 1 To ExecuteExcel4Macro("Get.Document(50)") Step 2
            Debug.Print i
            
            .PrintOut From:=i, To:=i, Copies:=1, Preview:=True
        Next
    
        If (ExecuteExcel4Macro("Get.Document(50)")) Mod 2 = 1 Then
            MsgBox "Replace paper into printer to print even pages and remove topsheet", vbInformation + vbOKOnly, "Print even pages"
        Else
            MsgBox "Replace paper into printer to print even pages", vbInformation + vbOKOnly, "Print even pages"
        End If
    
        For i = ExecuteExcel4Macro("Get.Document(50)") To 2 Step -2
            Debug.Print i
            
            .PrintOut From:=i, To:=i, Copies:=1, Preview:=True
        Next
    End With
End Sub
На Ваших документах превьюшки отображаются именно в том порядке, в каком я выше описывал (для прямой печати (без превью) достаточно убрать выделенное). Т.е., порядок печати, скажем, на первом из документов таков:
Код: Выделить весь код
1, 3, 5, …, 121, 123, 125
Затем следует сообщение о развороте листов, и порядок печати следующий:
Код: Выделить весь код
126, 124, 122, …, 6, 4, 2
В случае документа с нечётным количеством печатных страниц, например, 59 — должно быть следующее. Первый проход:
Код: Выделить весь код
1, 3, 5, …, 55, 57, 59
Затем сообщение о развороте листов и снятии верхнего листа из стопки, порядок печати на втором проходе следующий:
Код: Выделить весь код
58, 56, 54, …, 6, 4, 2
т.е., по количеству — на одну страницу меньше, нежели в первом проходе.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:33, 22-04-2014 | #7



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Печать чётных и не чётных страниц в excel 2010

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - Не открывается меню "ФАЙЛ". Печать пустых страниц. mark23 Microsoft Office (Word, Excel, Outlook и т.д.) 5 01-11-2012 13:32
Delphi - [Pascal] Вывод чётных чисел Светлана96 Тест-форум 8 02-02-2012 14:45
Печать страниц Folga Вебмастеру 3 09-12-2009 09:05
C/C++ - Нахождение чётных элементов в столбцах матрицы ShadowMas Программирование и базы данных 9 04-04-2009 10:21
Excel-97 и Canon LBP-1120 печать чётных и нечётных страниц Vas73 Хочу все знать 1 29-09-2003 06:58




 
Переход