Você está na página 1de 1

Sub salvaPlanilhasPDF()

Dim listaAbas() As String


Dim contador As Long, Item As Long, vAba As Long
Dim caminhoSalvar As String, nomeArquivo As String, vLista As String
Dim caixaSalvar As Office.FileDialog
Dim i As Integer
Set caixaSalvar = Application.FileDialog(msoFileDialogFolderPicker)
With caixaSalvar
.AllowMultiSelect = False
.Title = "Selecione o local para salvar"
.Show
End With
If caixaSalvar.SelectedItems.Count = 0 Then
MsgBox "Operação cancelada!", vbExclamation, "Salvar PDF"
Exit Sub
Else
caminhoSalvar = caixaSalvar.SelectedItems(1) & "\"
contador = 0
With ThisWorkbook
ReDim listaAbas(.Sheets.Count)
For vAba = 1 To .Sheets.Count
.Sheets(vAba).Activate
nomeArquivo = .Sheets(vAba).Cells(24, "X")
If nomeArquivo = "" Then
contador = contador + 1
listaAbas(contador) = .Sheets(vAba).Name
Else
nomeArquivo = nomeArquivo & ".pdf"
If Dir(caminhoSalvar & nomeArquivo, vbArchive) <> "" Then
Do While Dir(caminhoSalvar & nomeArquivo, vbArchive) <> ""
i = i + 1
nomeArquivo = nomeArquivo & " - " & i & ".pdf"
Loop
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
CStr(caminhoSalvar & nomeArquivo), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False,
OpenAfterPublish:= _
False
End If
Next
For Item = LBound(listaAbas) To UBound(listaAbas)
If listaAbas(Item) <> "" Then
vLista = vLista & listaAbas(Item) & vbCrLf
End If
Next
If vLista = "" Then
MsgBox "Arquivos PDF salvos com Sucesso!", vbInformation, "Salvar em
PDF"
Else
MsgBox "A(s) seguinte(s) aba(s) não foi(ram) salva(s) em PDF :" &
Chr(13) & Chr(13) & vLista & _
Chr(13) & "Favor verifique se na(s) aba(s) listada(s) a célula de
referência está preenchida!", vbExclamation, "Erro"
End If
End With
End If
End Sub

Você também pode gostar