Bom dia.
Estava buscando um código VBA que pudesse salvar uma parte da planilha em PDF, mas sem que escolhesse um diretório, pois a planilha seria enviada por e-mail e assim a desconfiguraria. Achei este código em um site em inglês e adaptei para as minhas preferência, só que quando aparece a caixa de diálogo e resolvo não salvar o arquivo em PDF clico em cancelar ou no x, mas mesmo assim o arquivo em PDF é salvo e é como se eu tivesse apertado confirmar. Queria que ao clica no x ou Cancelar o processo se encerrasse, estou mandando o código e planilha como anexo.
Sub SalvarPDF()
'www.contextures.com
'Para Excel 2010 adiante
Dim NomeArquivo As String
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strName As String
Dim strCell As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
'Travar tela enquanto macro é executada
Application.ScreenUpdating = False
If MsgBox("Deseja Salvar Registro em PDF?", vbYesNo + vbQuestion, "Salvar PDF") = vbYes Then
Sheets("Relatório").Select
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
'Selecione Pasta Ativa Onde Arquivo se Encontra Salvo
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & ""
'Substituir caracteres
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")
strCell = Sheets("Relatório").Range("A2").Value
'Cria Nome do Arquivo (Aba+Celula)
strFile = strName & "_" & strCell & ".pdf"
strPathFile = strPath & strFile
'Selecionar Pasta Onde Arquivo é Salvo
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF (*.pdf), *.pdf", _
Title:="Selecione Pasta Para Salvar Arquivo")
'Exportar/Salvar Arquivo em PDF
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'Mensagem de Confirmação de Arquivo Salvo
MsgBox "Registro da " & strCell & " Salvo!", vb, "PDF Salvo!"
Sheets("Registro").Select
Range("A1").Select
Else
Resume exitHandler
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Não foi possível salvar PDF"
Sheets("Registro").Select
Range("A1").Select
Resume exitHandler
Else
'NADA
End If
Sheets("Registro").Select
Range("A1").Select
End Sub
Postado : 18/01/2018 5:31 am