Correção Código Exp...
 
Notifications
Clear all

Correção Código Exportar em PDF

3 Posts
2 Usuários
0 Reactions
1,218 Visualizações
(@yatagan)
Posts: 22
Eminent Member
Topic starter
 

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
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

yatagan,

Bom dia!

Segue, anexo, um exemplo que faz o que você quer (enviar parte de uma planilha como .PDF). Note que no código é que fica a parte da planilha que você quer enviar. Você pode alterar isso no código.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 18/01/2018 8:12 am
(@yatagan)
Posts: 22
Eminent Member
Topic starter
 

Eu consegui ajeitar, tinha um código do mesmo segmento só que salvava em xlsm e comparei os dois e adicionei uma parte do outro e deu certo.

Edit:
Obrigado Wagner.

 
Postado : 18/01/2018 8:13 am