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.
Manipulando Impressoras e Impressões:
- 🖨️ Imprimindo em Impressora Matricial
- 🖨️ Como Automatizar Configurações de Impressão em Relatórios
- 🖨️ Como Listar Todas as Impressoras Instaladas
- 🖨️ Como Listar Tipos de Papel e Bandejas Suportados pela Impressora
- 🖨️ Como Abrir Relatórios Filtrados de Forma Eficiente
- 🖨️ Como Gerenciar Relatórios Sem Dados Usando VBA
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
👉 Não se esqueça de seguir André Bernardes no Linkedin. Clique aqui e me contate via What's App.
Nenhum comentário:
Postar um comentário