Страница 1 из 2

Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 11 мар 2010, 15:09
ZSFoS
Мне надо Excel печатать несколько разных листов в книге в многолистовой книге. Инструментом печати это возможно, только выделив группу с помощью клавиши CTRL. Это для меня неудобно, так как каждый раз при печати приходится их выделять заново. Скрывать непечатаемые листы также неудобно, потому что их затем нужно опять отображать. В Word и OpenOffice.org Calc существует такая возможность, указывая необходимые листы через запятую (пробел). В OpenOffice.org Calc я набираю на отдельном листе номера листов для печати и затем копирую их и отправляю на двухсторонюю печать на дуплексный принтер. Это очень удобно, так как не нужно каждый раз вводить нужные листы для печати. В Excel же только возможно указать диапазон.
Можно как-то автоматизировать печать выборочных листов Excel, какой нибудь макрос или ещё что?

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 20 мар 2010, 20:38
Busine2009
ZSFoS
а как ты хочешь указывать листы? По их порядковому номеру? Ты будешь их подсчитывать что ли?
Вопрос в том, как ты собираешься создать Группу с помощью Макроса.
Т.е. в книге ты печатаешь одну и ту же группу?

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 21 мар 2010, 04:53
ZSFoS
Busine2009 писал(а):ZSFoS
а как ты хочешь указывать листы? По их порядковому номеру? Ты будешь их подсчитывать что ли?
Вопрос в том, как ты собираешься создать Группу с помощью Макроса.
В OpenOffice.org Calc во время предварительного просмотра я создаю один или несколько наборов для печати в виде: 1 3 5 6 11 14 26 35, 1 3 5 6 11 14 26 36 41. номера я записываю на отдельном листе.
Затем, когда мне нужно быстро распечатать нужную комбинацию я её копирую через буфер обмена в печать и сразу распечатывается то, что надо.
Т.е. в книге ты печатаешь одну и ту же группу?
в одном случае одну, в другом другую.

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 22 мар 2010, 17:05
nilem
Можно попробовать так. Предварительно создаем на каком-нибудь листе именованный диапазон "Печать", в него будем записывать номера листов, которые надо распечатать.
Sub ПечатьЛистов()
Dim cell As Range, pr As Integer

For Each cell In Range("Печать")
If cell.Value > 0 Then
pr = cell.Value
If СуществЛист(pr) = False Then
MsgBox "Листа " & pr & " не существует", , "Печать"
GoTo act1
Else
ActiveWorkbook.Sheets(pr).Activate
MsgBox "Печатаем лист " & pr, , "Печать"
ActiveWorkbook.Sheets(pr).PrintOut
End If
Else
Exit For
End If

act1:
Next cell
End Sub

Private Function СуществЛист(index) As Boolean
Dim x As Object
On Error Resume Next
Set x = ActiveWorkbook.Sheets(index)
If Err.Number = 0 Then
СуществЛист = True
Else
СуществЛист = False
End If
End Function

Ненужные MsgBox можно закомментировать.

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 27 мар 2010, 16:09
Busine2009
ZSFoS
у меня появляется просвет. Могу предложить вариант, в котором надо будет вводить числа через запятые - через пробелы нельзя. Пойдёт так?

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 27 мар 2010, 18:27
Busine2009
ZSFoS
вот состряпал. Смысл этого макроса в том, что он выделяет листы, которые надо распечатать, затем появляется диалоговое окно "Печать" и тебе надо нажать Окей.

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 01 апр 2010, 12:54
ZSFoS
Busine2009 писал(а):ZSFoS
вот состряпал. Смысл этого макроса в том, что он выделяет листы, которые надо распечатать, затем появляется диалоговое окно "Печать" и тебе надо нажать Окей.
через запятую хорошо, но я не знаю что с этими файлами делать, как их запускать? у меня Microsoft Excel 2010 (Beta), макросами еще не пользовался,

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 01 апр 2010, 12:58
ZSFoS
nilem писал(а):Можно попробовать так. Предварительно создаем на каком-нибудь листе именованный диапазон "Печать", в него будем записывать номера листов, которые надо распечатать.
Sub ПечатьЛистов()
Dim cell As Range, pr As Integer

For Each cell In Range("Печать")
If cell.Value > 0 Then
pr = cell.Value
If СуществЛист(pr) = False Then
MsgBox "Листа " & pr & " не существует", , "Печать"
GoTo act1
Else
ActiveWorkbook.Sheets(pr).Activate
MsgBox "Печатаем лист " & pr, , "Печать"
ActiveWorkbook.Sheets(pr).PrintOut
End If
Else
Exit For
End If

act1:
Next cell
End Sub

Private Function СуществЛист(index) As Boolean
Dim x As Object
On Error Resume Next
Set x = ActiveWorkbook.Sheets(index)
If Err.Number = 0 Then
СуществЛист = True
Else
СуществЛист = False
End If
End Function

Ненужные MsgBox можно закомментировать.
не смог разобраться как этот макрос запустить, выложите образец листа с этим диапазоном если не трудно

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 01 апр 2010, 14:13
nilem
Этот код вставьте в модуль в VBE, щелкните где-нибудь в теле процедуры Sub ПечатьЛистов() и нажмите F5. Предварительно создайте на каком-нибудь листе именованный диапазон "Печать" с номерами листов для печати.

Re: Можно как-то автоматизировать печать выборочных листов Excel?

Добавлено: 01 апр 2010, 16:52
ZSFoS
Busine2009 писал(а):ZSFoS
вот состряпал. Смысл этого макроса в том, что он выделяет листы, которые надо распечатать, затем появляется диалоговое окно "Печать" и тебе надо нажать Окей.
Разобрался как импортировать в VBA эти файлы. Только не печатает, дошёл до этого окна: (рис. 1)
Затем двойной клик на печать и появляется это (рис.2)
Что дальше?