Notifications
Clear all

Salvar Uma Planilha Em PDF Na Área De Trabalho / Desktop

13 Posts
6 Usuários
0 Reactions
2,595 Visualizações
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

Boa tarde a todos.

Estou precisando salvar uma planilha em pdf na área de trabalho, vi alguns tópicos aqui, ma não deram certo. Alguém pode me ajudar.
Segue o código que estou usando em um módulo, ele salva no caminho indicado, mas gostaria de salva-lo na área de trabalho, ou abrir
a caixa de dialogo, e ai eu escolheria o caminho para salva-la.

'salva em PDF com o nº do pedido
Dim Nome As String
Dim SDate As String
Dim MyLocal As String
Dim Cliente As String

'lugar onde vai ser gravado
MyLocal = "C:Documents and SettingsOperadorMeus Documentos"

'numero do pedido
Nome = Range("M4").Value

'nome do cliente
Cliente = Range("R4").Value

MyLocal = "C:Desktop"
SDate = Now
MsgBox "O PEDIDO Nº " & Nome & " Do Cliente: " & Cliente & vbCrLf & vbCrLf & "Vai Ser Salvo Na Sua Área De Trabalho Em " & SDate & vbCrLf & vbCrLf & ".", vbOKOnly, "Salvo"
If Nome <> vbNullString Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
MyLocal & Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
MsgBox "O PEDIDO Nº " & Nome & vbCrLf & vbCrLf & "Foi Salvo Na Sua Área De Trabalho Com Sucesso Em " & SDate & ".", vbOKOnly, "Salvo"
Else
MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"
End If

End Sub

 
Postado : 22/02/2017 12:00 pm
(@mprudencio)
Posts: 0
New Member
 

Apos essa linha de codigo

If Nome <> vbNullString Then

ChDir ' Insira aqui o caminho do desktop use o gravador de macros para descobrir.

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
MyLocal & Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
MsgBox "O PEDIDO Nº " & Nome & vbCrLf & vbCrLf & "Foi Salvo Na Sua Área De Trabalho Com Sucesso Em " & SDate & ".", vbOKOnly, "Salvo"
Else
MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"
End If

 
Postado : 22/02/2017 12:15 pm
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

MPrudencio, boa tarde.
Me desculpe, mas estou aprendendo vba, poderia me explicar melhor como faço isso. Uso um botão da macro para gravar que está em um módulo: Sub BotãoGravar_Clique() . A macro que gravei é : BotãoGravar_Clique. Outra coisa a linha MyLocal = "C:Desktop" não existe, foi enviado errado, o que eu uso é MyLocal = "C:Documents and SettingsOperadorMeus Documentos"

 
Postado : 22/02/2017 12:56 pm
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

Se Preferir, segue a planilha completa

 
Postado : 22/02/2017 12:59 pm
(@teleguiado)
Posts: 0
New Member
 

crcj

Segue planilha alterada com o código para salvar na área de trabalho.

 
Postado : 23/02/2017 7:27 am
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

Teleguiado, boa tarde.
Obrigado pela sua resposta, mas está dando erro, segue anexo.

 
Postado : 23/02/2017 11:14 am
(@teleguiado)
Posts: 0
New Member
 

crcj

O Prsafe é para office 64bits se o seu for 32 bits tira ele.

 
Postado : 23/02/2017 12:14 pm
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

Teleguiado, boa tarde.
Não está dando certo, ele não grava na minha área de trabalho, mas tudo bem, vamos para o plano " B " tem como quando clicar no botão salvar, ele me abre a caixa de dialogo, e ai eu consigo salvar no caminho que eu escolher e o modelo do arquivo por ex PDF.

 
Postado : 24/02/2017 11:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pela imagem, o erro está na instrução inicial Priveta Declare (creio que a mesma foi copiada e colada nesse local), repare que a mesma esta em vermelho indicando que a "troca" de linha (_) não foi reconhecida.
Edite e corrija essa instrução. Em adiciona acrescente "" na linha MyLocal -- MyLocal = "C:Documents and Settings" & UserName & "Desktop"

 
Postado : 24/02/2017 1:46 pm
(@teleguiado)
Posts: 0
New Member
 

crcj
Subistitua o código abaixo:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
MyLocal & Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _

Por este

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
MyLocal & "" & Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _

Que vai gravar na sua área de trabalho.

 
Postado : 24/02/2017 4:30 pm
(@orlandos)
Posts: 0
New Member
 

(...)
Uso um botão da macro para gravar que está em um módulo: Sub BotãoGravar_Clique() .
(...)

oi, crcj!
Eu uso no final da macro, antes do "End Sub", a linha de comando abaixo:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "" & Range("Y8").Value & "Plan1" & Range("AA5").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

FONTE: viewtopic.php?f=10&t=11146

Ela salva o resultado da macro no mesmo local do arquivo e abre em PDF.

[ ]'s
PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir"
na fonte de link informada, agradecendo ao colaborador do código.
Eu já fiz a minha parte! :]

 
Postado : 26/02/2017 8:50 am
(@miguel-70)
Posts: 0
New Member
 

Ola, talvez pode ti ajudar este código;

Sub SalvarPDF()
 Application.ScreenUpdating = False
On Error GoTo debugs
      Set objWS = CreateObject("WScript.Shell")
 ActiveWindow.SmallScroll Down:=27
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        objWS.SpecialFolders("Desktop") & "Arquivo PDF" & Format(Date, "  dd-mm-yyyy") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
      Exit Sub
debugs:
      MsgBox "Atenção houve um erro ao salvar o arquivo PDF. ", vbCritical
 Application.ScreenUpdating = False
End Sub
 
Postado : 26/02/2017 10:59 am
 crcj
(@crcj)
Posts: 0
New Member
Topic starter
 

Bom dia.
Agradeço a todos que me ajudaram nesse tópico, principalmente ao OrlandoS cujo código postado aqui deu corretamente certo dentro do que eu estava precisando, mais uma vez, obrigado a todos que me ajudaram, até a próxima, e vamos encerrar o tópico.

 
Postado : 01/03/2017 6:11 am