Alguns dos nossos relatórios, listas, tabelas, textos, comentários podem ser dirigidos diretamente para algumas impressoras, sem que necessariamente sejam úteis, legíveis ou apropriados.
Podemos definir a impressão de certos relatórios por usuário, impedindo que a impressão ocorra numa impressora colorida por exemplo.
Talvez queira enviar certos relatórios diretamente para uma impressora instalada como driver conversor de PDF. Mas como?
Sub PrintToPDF()
Dim originalPrinter
'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter
Let originalPrinter = Application.ActivePrinter
'Application.ActivePrinter = "CutePDF Writer on SERV2:"
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:='"CutePDF Writer on SERV2:", Collate:=True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="CutePDF Writer on SERV2:", Collate:=True
'Let folder = Environ("Temp")
Let Filename = Sheet2.Cells(30, 15).Value & ".pdf"
Let folder = Environ("Temp")
Let newHour = Hour(Now())
Let newMinute = Minute(Now())
Let newSecond = Second(Now()) + 1
Let waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
SendKeys Filename
'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter
Let Application.ActivePrinter = originalPrinter
'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Application.ActivePrinter
End Sub
Mas talvez deseje que o usuário escolha a impressora a usar:
Let nOpt = Application.Dialogs(xlDialogPrinterSetup).Show
If nOpt = True Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else
Exit Sub
End If
Comente e compartilhe este artigo!
Nenhum comentário:
Postar um comentário