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

Excel макрос или другой вариант

Добавлено: 19 дек 2005, 09:31
arturhome
Вобщем проблемка такая
Возможно ли в Excel с помощью макроса или VBA
перераспрелеить листы для печати на разные принтеры.
В Excel создаю кнопачку. записываю на неё макрос, что бы при на жатии на неё автоматический происходила печать
"Лист1" печать на принтер "П1"
"Лист2" печать на принтер "П2"
Возможно ли такое с помощью макрос, потому как обычное записывание макроса не помогает, печать идет на один принтер.

Добавлено: 19 дек 2005, 10:15
Avsha
Попробуйте записать макрос с действием выбора принтера из ниспадающего списка ...
Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 19.12.2005
'
Application.ActivePrinter = "Adobe PDF (Ne02 :) "
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF (Ne02 :) ", Collate:=True
End Sub

Добавлено: 19 дек 2005, 10:59
arturhome
Application.ActivePrinter = "Adobe PDF (Ne02 :) "
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF (Ne02 :) ", Collate:=True
End Sub
Скажите а запись Adobe PDF (Ne02 :) это что .расскажите а то я полный профан в этом деле

Добавлено: 19 дек 2005, 11:39
Avsha
Adobe PDF (Ne02 :) - Это имя виртуального принтера, который автоматически создает файл .pdf, он просто устанановлен в моей системе.
Соответственно у вас вместо этого должно быть прописано нормальное :) имя физического принтера,
так, как принтер называется в Панели управления\Принтеры.

Добавлено: 19 дек 2005, 11:55
arturhome
Sub тесткнопка()
'
' тесткнопка Макрос
' Макрос записан 19.12.2005 (Artur)
'

'
Range("F2").Select
Application.ActivePrinter = "hp LaserJet 1300 PCL 5e"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"hp LaserJet 1300 PCL 5e", Collate:=True
Sheets("Лист2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Лист1").Select
End Sub
т.е в моем случае получается так, но почему то он пишет ошибку

типа Run-time error '1004'
Method 'ActivePrinter' of obect'_Application failed

Помогите плиз.. :(

Добавлено: 19 дек 2005, 12:29
Avsha
Application.ActivePrinter = "hp LaserJet 1300 PCL 5e"
Это строка получилась при записи макроса или вы ее руками подправляли?
Указанная вами ошибка у меня воспроизвелась когда я изменил название принтера на левое
Application.ActivePrinter = "Adobe PDF (Ne02 :) фывфыва"

Добавлено: 19 дек 2005, 12:35
arturhome
сам ручками подправил.. )
тогда объяните как сделать что бы макрос записался правильно
лучше по шагово если не затруднит... а то уже вешаюсь от постоянного переключения принтера.. это туда другое туда 5 ..6.7 и т.д

Добавлено: 19 дек 2005, 12:50
arturhome
вобщем я понял свою ошибку спасибо разобрался.. )))