Notifications
Clear all

Escolher Impressora Para Impressao.

5 Posts
4 Usuários
0 Reactions
1,992 Visualizações
(@mprudencio)
Posts: 2749
Famed Member
Topic starter
 

Boa noite, tenho uma rotina que imprime varias planilhas de acordo com uma lista de dados ou seja roda dentro de um loop.
or
Funciona perfeitamente mas me surgiu uma necessidade. Preciso escolher a impressora que desejo imprimir atraves dessa rotina pois a mesma roda apenas na impressora padrao.

application.dialog](Xldialogs.print).show me permite escolher a impressora mas dentro do loop abre a cada impressao o que forna a inviavel.

Alguem tem uma ideia de como resolver?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 20/07/2017 6:00 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Marcelo, neste topico tem um exemplo, veja se consegue adaptar:

viewtopic.php?f=10&t=19660#p99898

Click em se a resposta foi util!

 
Postado : 20/07/2017 7:50 pm
Jozelia
(@jozelia)
Posts: 45
Eminent Member
 

Bom Dia eu uso o código abaixo:

Sheets(Array("Plan1", "Plan2", "Plan3")).Select 'Em "Plan1"... coloque o nome de cada planilha.
Application.Dialogs(xlDialogPrint).Show

Espero ter ajudado!

 
Postado : 25/07/2017 8:34 am
(@mprudencio)
Posts: 2749
Famed Member
Topic starter
 

Basole eu guardei o exemplo so nao entendi como posso usar isso em um loop.

Tenho uma lista de dados que alimenta por codigo uma outra planilha e isso é impresso dentro do proprio codigo algo mais ou menos assim


Sub imprimir

Dim linha as long
Dim W as worksheet



linha=2
W = sheets("Modelo")

Do while cells(linha,2)value <> ""

Codigo para gerar as planilhas 

W.printout

loop

end sub

Em resumo a linha w.pritout imprime na impressora padrao, nao posso alterar a impressora padrao mas preciso escolher a impressora (apenas uma vez)

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 02/09/2017 5:13 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marcelo, você tem de fazer a chamada para a rotina referente a impressora antes de iniciar o loop, assim irá abrir para escolher a impressora e a instrução "W.printout", irá imprimir na impressora selecionada.
Vocè tambem pode utilizar a rotina abaixo, a mesma verifca qual a impressora ativa no momento e exibe mensagem se pretende escolher outra e exibe a lista das mesmas :

Sub DefinirImpressora()

    Dim intQualPrt   As Integer

    intQualPrt = MsgBox("A Impressora Ativa no momento é: " & Chr(13) & Chr(13) _
        & Mid$(ActivePrinter, 1, 26) & Chr(13) & Chr(13) _
        & "Deseja alterar a Impressora ?", vbYesNo, "Alerta !!!")

    If intQualPrt = vbYes Then

        Let nOpt = Application.Dialogs(xlDialogPrinterSetup).Show
    
            If nOpt = True Then
                'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
            Else
                Exit Sub
            End If
    Else
            'MsgBox "A impressora ativa no momento é: " & Chr(13) & Chr(13) & Mid$(ActivePrinter, 1, 26)
            'MsgBox "A impressora Não foi alterada !!!"
    
    End If
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/09/2017 8:22 pm