MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Configurando o nome da impressora padrão

    avatar
    Picoleo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 18/08/2011

    [Resolvido]Configurando o nome da impressora padrão Empty Configurando o nome da impressora padrão

    Mensagem  Picoleo 24/10/2012, 13:22

    Senhores, bom dia!

    Tenho uma função no VBA do meu Access que imprimi um documento Word, é instanciado um objeto do tipo word e alterado o nome da impressora padrão para "PDFCreator".

    A questão é a seguinte, várias pessoas utilizam isso. Mas o nome da impressora não está igual em todos os computados, por isso ocorre erro quando o nome da impressora não é exatamente "PDFCreator".

    "Run time error '5216': Printer error"

    Tem computador que o nome está como "Adobe PDF" ou "ImpressoraPDF" ou só "PDF".

    Segue o código:

    Código:
    Set oWord = CreateObject("Word.Application")
    oldPrinter = oWord.ActivePrinter
    oWord.ActivePrinter = "PDFCreator"
    ActiveDocument.PrintOut Range:=wdPrintFromTo, From:="1", To:="28", Copies:=1
    oWord.ActivePrinter = oldPrinter

    A minha intenção é na parte do código 'oWord.ActivePrinter = "PDFCreator"' alterar para encontrar o qualquer nome que possua "PDF" dentro.

    oWord.ActivePrinter = '*PDF*'

    Como eu faria isso pelo VBA??
    Grande abraço a todos.

    Leonardo Picoli

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Configurando o nome da impressora padrão Empty Re: [Resolvido]Configurando o nome da impressora padrão

    Mensagem  Avelino Sampaio 24/10/2012, 13:35

    Veja neste meu artigo:

    http://www.usandoaccess.com.br/tutoriais/tuto47.asp?id=1#inicio

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Picoleo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 18/08/2011

    [Resolvido]Configurando o nome da impressora padrão Empty Re: [Resolvido]Configurando o nome da impressora padrão

    Mensagem  Picoleo 24/10/2012, 17:00

    Cara, tem muita coisa interessante nesse artigo.
    Gostei muito!

    Mas para o que eu precisava encontrei essa função: http://word.mvps.org/faqs/macrosvba/AvailablePrinters.htm

    A função do link acima lista todas as impressoras da sua máquina, então criei a função abaixo para procurar qual das impressoras da lista tem escrito "PDF" no nome, segue:

    Código:
    Public Function PrinterName() As String

    Dim StrPrinters As Variant, x, i As Long
    StrPrinters = ListPrinters

    If IsBounded(StrPrinters) Then
        For x = LBound(StrPrinters) To UBound(StrPrinters)
            For i = 1 To Len(StrPrinters(x))
                If Mid(UCase(StrPrinters(x)), i, 3) = "PDF" Then
                    PrinterName = StrPrinters(x) 'Se contém PDF no nome define esta como a impressora
                    GoTo Fim
                End If
            Next i
        Next x
    Else
        PrinterName = "PDFCreator"
    End If

    Fim:
    End Function

    Usando a função:

    Código:
    Set oWord = CreateObject("Word.Application")
    oWord.ActivePrinter = PrinterName


    [Resolvido]

    Obrigado!!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Configurando o nome da impressora padrão Empty Re: [Resolvido]Configurando o nome da impressora padrão

    Mensagem  Avelino Sampaio 24/10/2012, 17:05

    Quem bom que resolveu.

    Só para constar, o código estava lá no artigo. Veja abaixo a parte. Era só adaptar, aproveitando o loop do FOR.

    Código:
    Private Sub Form_Load()
    Dim objPrinter As Object
    'Adicione nome das impressoras na ListBox
    For Each objPrinter In Printers
      Me!ListaImpressoras.AddItem objPrinter.DeviceName
    Next
    'Seleciona a impressora padrão do Windows
    Me!ListaImpressoras.Value = Application.printer.DeviceName
    End Sub


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Picoleo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 18/08/2011

    [Resolvido]Configurando o nome da impressora padrão Empty Re: [Resolvido]Configurando o nome da impressora padrão

    Mensagem  Picoleo 24/10/2012, 17:13

    Sim, eu vi sim Avelino. Funciona muito bem e economiza muito código! Obrigado.

    No Access vai que é uma beleza. É que como eu também uso o VBA do Word, nele não reconhece o Objeto do tipo Printers, por isso tive que fazer esse "gato" pra conseguir a lista de impressoras, rs.

    Valeu man, abraço.

    Léo

    Conteúdo patrocinado


    [Resolvido]Configurando o nome da impressora padrão Empty Re: [Resolvido]Configurando o nome da impressora padrão

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 09:26