Bom dia! Alguem pode me ajudar?
Preciso de uma macro para gerar um pdf automatico, porém eu gostaria que fosse aberta uma janela de dialogo para o usuario escolher a pasta de destino, pois cada arquivo vai para uma pasta de acordo com o cliente do relatório.
Eu tentei os 2 modelos abaixo, o primeiro faz tudo que eu quero, mas por o arquivo conter macros, ele da um erro no arquivo pdf e não abre.
O segundo salva o arquivo diretamente sem abrir a janela de onde salvar. Alguem consegue me ajudar?
1º
Sub exportarpdf()
Dim CaixaDialogo As FileDialog
Dim titulo As String
titulo = Range("H1")
Set CaixaDialogo = Application.FileDialog(msoFileDialogSaveAs)
With CaixaDialogo
.InitialFileName = "https://vppfrs-fabrics.latam.collaborat ... Form/Adami" & titulo
.FilterIndex = 25 'PDF no Office 2010
.Show
.Execute
End With
2º
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="vFilename", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAftePublish:=False
Obrigado
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Macro gerar pdf
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Sáb Jun 15, 2019 12:16 pm
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Macro gerar pdf
Experimentou a rotina proposta pelo colega Saulo (SRobles) no planilhando http://www.planilhando.com.br/forum/vie ... 10&t=31274; ela, aparentemente, faz o que deseja
Segue a rotina comentada:
Segue a rotina comentada:
Código: Selecionar todos
Sub salvaPDF()
Dim caixaSalvar As Office.FileDialog
Dim caminhoSalvar As String, nomeArquivo As String
'Abre caixa de dialogo para selecionar local/diretorio onde será salvo arquivo
Set caixaSalvar = Application.FileDialog(msoFileDialogFolderPicker)
With caixaSalvar
.AllowMultiSelect = False
.Title = "Selecione o local para salvar"
.Show
End With
'verifica se foi selecionado um diretorio/local, se não foi sai da rotina
If caixaSalvar.SelectedItems.Count = 0 Then
MsgBox "Operação cancelada!", vbExclamation, "Salvar PDF"
Exit Sub
Else
'inclui o caminho selecionado em uma variavel
caminhoSalvar = caixaSalvar.SelectedItems(1) & "\"
'Efetua um loop nas abas da planilha para salvar pdf uma a uma
With ThisWorkbook
For vAba = 1 To .Sheets.Count
.Sheets(vAba).Activate
'Obtem/determina nome que sera atribuido ao arquivo pdf
nomeArquivo = "Teste " 'Sheets(vAba).Cells(7, "AN") & ".pdf"
'Exporta/salva a planilha como pdf, se desejar abrir o pdf salvo, altere OpenAfterPublish para True
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CStr(caminhoSalvar & nomeArquivo), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Next
End With
End If
MsgBox "Operação realizada com sucesso!", vbInformation, "Salvar PDF"
End Sub