Notifications
Clear all

Macro que salva relatório em PDF

7 Posts
2 Usuários
0 Reactions
1,140 Visualizações
(@tonaldo)
Posts: 0
New Member
Topic starter
 

Pessoal, preciso de uma ajuda numa macro, não sei quase nada de VBA e pesquisando em algumas fontes dentre elas conseguir uma macro que gera arquivo pdf, porém queria adaptar ela para fazer três coisas. Que seriam: pegar somente os dados da coluna A ao I, a outra coisa que fizesse a contenação do nome "Relatório de numero" + o nome da célula ("A1"), e por fim o local de salvamento, seria no mesmo lugar onde encontra a planilha.
Obs, não posso disponibilizar a planilha, mas deixo o código que uso.
Agradeço desde já e obrigado.

Sub Salvando()
Dim Nome As String
Nome = Range("a1").Value
If Nome <> vbNullString Then

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Relatorio de Número" & " & Nome " & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
MsgBox "Relatório de numero " & Nome & "," & " foi salvo com sucesso!", vbOKOnly, "Salvo"
Else
MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"
End If
End Sub

 
Postado : 20/05/2016 4:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Em nossa base há exemplos

Essa parte:

 Filename:="C:UsersAleVBADownloads"

é o local onde o arquivo será salvo
Essa parte:

 ActiveSheet.Range("A1").Value

nome do arquivo

Sub AleVBA_20430()
    With Sheets("Plan1").Range("A1:I" & Range("A" & Rows.Count).End(xlUp).Row)
        .ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="C:UsersAleVBADownloads" & ActiveSheet.Range("A1").Value, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False '
    End With
End Sub

Att

 
Postado : 20/05/2016 5:59 am
(@tonaldo)
Posts: 0
New Member
Topic starter
 

Amigo, quero que a mensagem box seja permanecida, teria como deixar ela ?

 
Postado : 20/05/2016 6:18 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Não testado.

Sub AleVBA_20430()
Dim Nome As String
Nome = ActiveSheet.Range("A1").Value
    If Nome <> vbNullString Then
        With Sheets("Plan1").Range("A1:I" & Range("A" & Rows.Count).End(xlUp).Row)
            .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:="C:UsersAleVBADownloads" & Nome, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False '
        End With
        MsgBox "Relatório de numero " & Nome & "," & " foi salvo com sucesso!", vbOKOnly, "Salvo"
    Else
        MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"
    End If
End Sub

Att

 
Postado : 20/05/2016 6:27 am
(@tonaldo)
Posts: 0
New Member
Topic starter
 

Obrigado amigo, ajudou muito.

 
Postado : 20/05/2016 6:46 am
(@tonaldo)
Posts: 0
New Member
Topic starter
 

Mais uma vez, aproveitando o tópico esse código aqui é de visualização de impressão, teria como deixar para visualizar apenas as colunas (A1 ao I), pois está pegando a planilha inteira.

Sub Visualizar_impressão()
Sheets("Plan1").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub

 
Postado : 20/05/2016 6:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Favor clicar na mãozinha!!!!!!!!!!!!!

Sub Visualizar_impressão()
With Sheets("Plan1").Range("A1:I" & Range("A" & Rows.Count).End(xlUp).Row)
    ActiveWindow.SelectedSheets.PrintPreview
End With
End Sub

Att

 
Postado : 20/05/2016 7:35 am