Страницы: 1
RSS
Выбор принтера, VBA
 
Добрый день! По умолчанию у меня стоит виртуальный принтер(pdf). подскажите как можно выбрать (вызвать диалоговое окно) или указать нужный принтер в коде.
Код
Sheets("Счет").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
 
А с ошибкой Проверка папки на существование, ошибка "constant expression required " вы справились?
В темах надо отвечать.
 
Спасибо, ваш ответ. В теме отписался
 
Цитата
monster$ написал:
как можно выбрать (вызвать диалоговое окно)
Application.Dialogs(xlDialogPrint).Show
 
Цитата
или указать нужный принтер в коде
а поискать пробовали?
http://excelvba.ru/code/printers

Цитата
Данный код позволяет активировать виртуальный PDF-принтер в Microsoft Excel:
(в случае успешной активации функция возвращает TRUE)

Function ActivatePDFprinter() As Boolean
...
 
Цитата
Игорь написал: а поискать пробовали?
Пробывали. Видел вашу статью.
Код
Function ActivatePDFprinter() As Boolean
    If Application.ActivePrinter Like "*PDF*" Then ActivatePDFprinter = True: Exit Function
    On Error Resume Next: Err.Clear
    With CreateObject("Shell.Application").Namespace(4).Items
        For N = 1 To .Count - 1
            ИмяПринтераExcel = .Item(N).Name & " (Ne" & Format(N - 1, "00") & ""
            If ИмяПринтераExcel Like "*PDF*" Then
                Application.ActivePrinter = ИмяПринтераExcel
                ActivatePDFprinter = True: Exit For
            End If
        Next
    End With
    If Not (Application.ActivePrinter Like "*PDF*") Then
        MsgBox "Не найден виртуальный принтер для печати в ПДФ", vbExclamation
    End If
    If Err Then MsgBox "Не удалось активировать виртуальный принтер для печати в ПДФ", vbExclamation
End Function
Этот код пишет что не может найти виртуальный принтер. Хотя Foxit printer принтер стоит.

Цитата
Юрий М написал:
Application.Dialogs(xlDialogPrint).Show
после нажатия кнопки ОК, печатается активная страница
 
Цитата
monster$ написал:
после нажатия кнопки ОК, печатается активная страница
И что? )) Вы просили вывести диалоговое окно выбора принтера - я показал, как.
 
Вы правы, что я просил показать как вызвать диалоговое окно выбора принтера. Как сделать чтобы печатал то что нужно)))
 
Эх...
Код
Dim CurrentPrinter As String, v
CurrentPrinter = Application.ActivePrinter
v = Application.Dialogs(xlDialogPrinterSetup).Show
If v = True Then
    Sheets("Счет").PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    Application.ActivePrinter = CurrentPrinter
End If
Изменено: The_Prist - 31.10.2016 14:48:33
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
monster$ написал: Как сделать чтобы печатал то что нужно
И Вы об этом спрашивали в стартовом сообщении?
 
замените в моем коде "*PDF*" на "*Foxit*"
 
Игорь, замените в моем коде "*PDF*" на "*Foxit*"[/QUOTE]
не помогло! А очень хочется что бы заработал код!

Прист, вам спасибо, почти то что нужно!  
 
Почему почти? Что не так?
Изменено: The_Prist - 31.10.2016 22:18:18
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал: Dim CurrentPrinter As String...
все ровненько, спасибо всем!
 
Sub PechPDF()
'
' Макрос77 Макрос
'
Dim s As String
s = Application.ActivePrinter
'  Range("Z1").Select
'  Range("Z1") = s - для считывания имени вашего принтера / вначале поставить для распечатки нужный принтер
' Имя моего виртуального принтера - заменить на Ваш виртуальный принтер


'
Application.ActivePrinter = "Microsoft Print to PDF (Ne02:)"

   ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,,,FALSE)"
   
End Sub
Страницы: 1
Читают тему
Наверх