Excel tentando salvar como PDF usando um valor de célula para o caminho e o nome do arquivo

0

Estou usando o excel para salvar minha planilha como PDF e como .XLS separadamente com base em um valor de célula, mas ela é salva na mesma pasta que o arquivo principal. Eu tenho tentado encontrar uma maneira de usar o VBA para salvar esses arquivos em vários caminhos e esses caminhos são referências em valores de célula com base em uma ferramenta de validação de dados.

Por exemplo: Caminho: - D: \ Collections \ March \ Region 1 \ - é referenciado na célula D3

Nome do arquivo: LN, FN (mm / dd / aa) - é referenciado na célula D4

Os valores em negrito continuam sendo alterados com base nas fórmulas de pesquisa no Excel. O código atual que estou usando para salvar em .XLS é:

Sub SaveASXLS()

Dim FName As String
Dim FPath As String

FPath = "D:\Collections\March\Region 5\Cerritos"
FName = Sheets("Sheet1").Range("D4").Text
ThisWorkbook.SaveAs Filename:=FPath & "\" & FName, FileFormat:=56

End Sub

O FPATH="Localização do arquivo" Consegui que ele funcionasse com um local fixo, mas tenho que mudá-lo toda vez que eu alternar minha região ou cidade.

E o código que estou usando para exportar o arquivo para PDF é:

Sub SavePDF()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Range("D4").Value _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub

Estou usando os dois separadamente como um módulo e um como uma macro básica, existe também uma maneira de combinar essas duas funções juntas.

Muito obrigado antecipadamente por sua ajuda.

    
por Vishal Morari 13.04.2016 / 00:29

1 resposta

0

Isso funciona bem para mim

Option Explicit

Sub SaveASXLS()

Dim FName As String
Dim FPath As String

FPath = Range("E1").Value
FName = Range("I1").Value
ThisWorkbook.SaveAs Filename:=FPath & "\" & FName, FileFormat:=56

End Sub

Use Value não text

Para combiná-los, você precisa chamá-los

Sub TwoMacros()
    SaveASXLS
    SavePDF
End Sub

Ou ligue um para o outro:

Option Explicit

Sub SaveASXLS()

Dim FName As String
Dim FPath As String

FPath = Range("E1").Value
FName = Range("I1").Value
ThisWorkbook.SaveAs Filename:=FPath & "\" & FName, FileFormat:=56

SavePDF

End Sub
    
por 13.04.2016 / 16:43