Ir ao conteúdo

Posts recomendados

Postado

Segue exemplo generico....

 

 *Altere o caminho e nome do arquivo pdf que deseja imprimir

Sub SeuBotao()

Dim sPathPdf As String: sPathPdf = "c:\Users\user\Documents\SEU_ARQUIVO_PDF.pdf"
VBA.CreateObject("Shell.Application").Namespace(0).ParseName(sPathPdf).InvokeVerb ("Print")

end sub

 

Postado

Aqui pra funciona perfeitmente.

 

@GuilhermeST mostre o código de erro, de repente podemos ajudar a investigar o problema.

 

Aprimorei o codigo para o usuario selecionar o arquivo pdf 

 

Sub SeuBotao()
Dim sPathPdf As String

With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Add "PDF Files", "*.pdf; *.pdf, 1"
        .Show
        sPathPdf = .SelectedItems.Item(1)
    End With
    
    If VBA.InStr(sPathPdf, ".pdf") = 0 Then
        Exit Sub
    Else
    
    VBA.CreateObject("Shell.Application").Namespace(0).ParseName(sPathPdf).InvokeVerb ("Print")

    End If

End Sub

 

Postado

@Basole Troquei o tipo de botão e sumiu o erro, antes na aba desenvolvedor eu estava inserindo o botão ActiveX agora tentei no controle de formulário e não deu mais erros, os dois códigos que me enviou funcionou, porém nada acontece, nesse ultimo botão eu seleciono o arquivo clicko em abrir e não acontece mais nada, no primeiro código onde é necessário especificar o caminho nada acontece também.

 

A impressora está instalada corretamente e configurada como padrão também.

Postado

@GuilhermeST nao sei se ja o fez, mas é necessário atribuir ao botao a macro. 

 

* Clique com botao direito sobre o botao, e aparera as opções.

 

Segue uma outra opcao caso o exemplo anterior nao funcione para o seu cenario

* Foi testado com o Adobe Acrobat Reader

 

Sub Exemplo()

    ActiveWorkbook.FollowHyperlink "C:\USers\user\Documents\SEU_ARQUIVO_PDF.pdf"
    
    With Application
        .Wait (VBA.Now() + VBA.TimeValue("00:00:05")) 'aguarda 5 segundos
        .SendKeys ("^p"), True 'Print crt+p
        .Wait (VBA.Now() + VBA.TimeValue("00:00:03")) 'aguarda 3 segundos
        .SendKeys ("~"), True ' Enter
        .Wait (VBA.Now() + VBA.TimeValue("00:00:08")) 'aguarda 8 segundos
        .SendKeys ("^q"), True 'Fecha o pdf
    End With
    
End Sub

*Altere o caminho e nome do arquivo pdf que deseja imprimir

 

 

  • Obrigado 1
Postado

@Basole Eu atribui o macro sim, esse ultimo funcionou, deu para ver o processo, uma pena que os primeiros não tenham funcionado.

 

Se tiver alguma sugestão para funcionar os primeiros eu aguardo, se não obrigado do mesmo jeito!!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...