Notifications
Clear all

Inserir local de salvamento na Macro "Salvar em PDF"

10 Posts
3 Usuários
0 Reactions
1,389 Visualizações
(@apuzedr)
Posts: 0
New Member
Topic starter
 

Bom dia.

Tenho uma macro que me permite salvar minha planilha em PDF.

O único problema é que ele sempre salva a planilha na última pasta que salvei qualquer coisa.

Gostaria que salvasse o PDF na própria pasta onde o excel esta, independente de onde o excel esteja (vou enviar para diversar pessoas).

Sub salvar()
'
' Salvar Macro
'
Dim nome As String
'
    Sheets("Score Card").Select
    Range("B2:P62").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Sheets("Score Card").Range("D6").Value, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Sheets("Score Card").Select
    Range("B2:P62").Select
End Sub
 
Postado : 26/02/2018 11:49 am
(@basole)
Posts: 487
Reputable Member
 

Segue sua macro com as alterações;

Sub salvar()
'
' Salvar Macro
'
Dim nome As String
'
Sheets("Score Card").Select
Range("B2:P62").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "", Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets("Score Card").Select
Range("B2:P62").Select
End Sub
 
Postado : 26/02/2018 12:23 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Apuzédr,

Boa tarde!

Seja muito bem vindo ao fórum.

Para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Pedimos, por gentileza, das próximas vezes que postar código VBA aqui no fórum, utilizar a ferramenta CODE existente no início da caixa de mensagens. Não a ferramenta QUOTE que você utilizou.

 
Postado : 26/02/2018 12:27 pm
(@apuzedr)
Posts: 0
New Member
Topic starter
 

Amigo, não deu certo. Veja.

 
Postado : 26/02/2018 12:33 pm
(@basole)
Posts: 487
Reputable Member
 

Ops, segue com a correção:

Sub salvar()
'
' Salvar Macro
'
Dim nome As String
'
Sheets("Score Card").Select
Range("B2:P62").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets("Score Card").Range("D6").Value, Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets("Score Card").Select
Range("B2:P62").Select
End Sub
 
Postado : 26/02/2018 12:40 pm
(@apuzedr)
Posts: 0
New Member
Topic starter
 

Ainda não funcionou, aparentemente o comando "Thisworkbook" que é o comando que vai direcionar o local correto de salvamento esta inserido no local designado para o Nome do Arquivo. Pelo menos quando salvo acontece isso, o arquivo salva com o nome do local, ao invés de salvar no local do arquivo.

 
Postado : 26/02/2018 1:12 pm
(@basole)
Posts: 487
Reputable Member
 

Estou supondo que no conteúdo da celula Sheets("Score Card").Range("D6").Value tenha algo como ...blablablabla.pdf
Se puder disponilibilizar seu arquivo ou exemplo, facilita o entendimento e a tua ajuda.

 
Postado : 26/02/2018 1:19 pm
(@apuzedr)
Posts: 0
New Member
Topic starter
 

Em cima tem o botão de Salvar.

Quando se clica nele ele salva o arquivo em PDF com o nome que estiver inserido na Célular D6, ou, caso a célula esteja em branco ele simplesmente salva com o próprio nome do arquivo.

Só que ele salva no último lugar que o usuário utilizou para salvar qualquer coisa, e quero que salve onde o arquivo já se encontra.

 
Postado : 26/02/2018 1:48 pm
(@basole)
Posts: 487
Reputable Member
 

Segue abaixo as alterações solicitadas.

Sub salvar()
    '
    ' Salvar Macro
    '
    Dim nome As String
    '
    
    With Sheets("Score Card")
        If .Range("D6").Value = Empty Then
            nome = ThisWorkbook.Path & "" & VBA.Left(ThisWorkbook.Name, VBA.InStr(ThisWorkbook.Name, ".") - 1) & ".pdf"
        Else
            nome = ThisWorkbook.Path & "" & .Range("D6").Value & ".pdf"
        End If
 
        .Select
        .Range("B2:P46").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
        .Select
        .Range("B2:P46").Select
    End With
    
End Sub
 
Postado : 26/02/2018 2:04 pm
(@apuzedr)
Posts: 0
New Member
Topic starter
 

É exatamente isso que eu queria.

Muito Obrigado

Basole, pode apagar o arquivo da sua resposta e deixar apenas o código?

Assim eu marco sua resposta como resolvida e fechamos o tópico.

Peço isso porque é propriedade da empresa.

 
Postado : 26/02/2018 2:25 pm