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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
arturhome
Сообщения: 25
Зарегистрирован: 19 дек 2005, 07:33

Вобщем проблемка такая
Возможно ли в Excel с помощью макроса или VBA
перераспрелеить листы для печати на разные принтеры.
В Excel создаю кнопачку. записываю на неё макрос, что бы при на жатии на неё автоматический происходила печать
"Лист1" печать на принтер "П1"
"Лист2" печать на принтер "П2"
Возможно ли такое с помощью макрос, потому как обычное записывание макроса не помогает, печать идет на один принтер.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

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

Application.ActivePrinter = "Adobe PDF (Ne02 :) "
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF (Ne02 :) ", Collate:=True
End Sub
Скажите а запись Adobe PDF (Ne02 :) это что .расскажите а то я полный профан в этом деле
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

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

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

Помогите плиз.. :(
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

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

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

вобщем я понял свою ошибку спасибо разобрался.. )))
Ответить