Notifications
Clear all

Salvar parte da planilha em pdf

9 Posts
2 Usuários
0 Reactions
1,974 Visualizações
(@tecnico)
Posts: 36
Eminent Member
Topic starter
 

Olá pessoal, com a ajuda de vocês estou montando uma planilha que gera "Ordens de serviços", eu tinha este código em minha planilha:

Sub gravarPDF()
'
' Macro para gravar PDF
'

'Esta macro grava a planilha atual, gerando um arquivo PDF.

    destino = "C:UsersJoseDesktopCONTROLEORDENS DE SERVIÇOS" 'Local onde será gravado o arquivo
    'Código que realiza a gravação.
    'no parâmetro Filename:= temos o destino definido na variável acima e o nome
'do arquivo.
    'Range("A1") que refere-se a célula B1 da planilha atual, nela deve conter
'o nome. Se precisar mudar o endereço basta alterar o "B1" pela
'referência desejada.
'Se precisar do nome da planilha no lugar da célula B1 mude Range("A1").Value por ActiveSheet.Name
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        destino & Range("A1").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub

Mais a partir do momento que coloquei mais um tabela ao lado da planilha que quero imprimir e salvar, não consigo mais apenas salvar o que eu quero em pdf, agora ele seleciona tudo, e salva em um monte de folhas. No minimo umas 3.

Como posso fazer ele salvar em pdf apenas as celulas de A1 ate J46?

 
Postado : 20/03/2015 2:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente assim:

Sub gravarPDF()
Dim MyRange As Excel.Range
'Define a range a ser exportada para PDF
Set MyRange = ActiveSheet.Range("A1:k46")
'Esta macro grava a planilha atual, gerando um arquivo PDF no local abaixo.
destino = "C:UsersJoseDesktopCONTROLEORDENS DE SERVIÇOS"

'Código que realiza a gravação.
MyRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            destino & Range("A1").Value & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
End Sub

Nota é preciso configurar a área de impressão em uma única pag.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/03/2015 6:12 pm
(@tecnico)
Posts: 36
Eminent Member
Topic starter
 

Boa tarde,

Rapaz, usei este código, mais ele salvou 4 folhas, uma com o conteudo e outras 3 em branco.
Então modifiquei para ele salvar entre Set MyRange = ActiveSheet.Range("A1:k45")

Como posso fazer ele salvar apenas em uma pagina?

 
Postado : 26/03/2015 11:18 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A rotina salva a range no formato pdf, obedecendo a formatação/area de impressão da planilha.
Formate inicialmente sua range, e veja como sai? Retorne

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 26/03/2015 4:37 pm
(@tecnico)
Posts: 36
Eminent Member
Topic starter
 

Olá, mesmo configurando para apenas uma folha a ser impressa, no pdf ele salva 2 folhas, sendo uma com a planilha e outra em branco.

 
Postado : 30/03/2015 1:25 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pode disponibilizar seu exemplo, e qual a area a ser impressa???

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/03/2015 1:38 pm
(@tecnico)
Posts: 36
Eminent Member
Topic starter
 

Esta é a planilha.

A planilha é a Ordem de serviço da celula A1 até J45.

Att

 
Postado : 30/03/2015 2:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:

Sub gravarPDF()
Dim MyRange As Excel.Range
'Define a range a ser exportada para PDF
Set MyRange = ActiveSheet.Range("A1:J45")
'Esta macro grava a planilha atual, gerando um arquivo PDF no local abaixo.
destino = "C:UsersJoseDesktopCONTROLEORDENS DE SERVIÇOS"
    
    With ActiveSheet.PageSetup
        .PrintArea = "$A$1:$J$45"
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
'Código que realiza a gravação.
MyRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            destino & Range("A1").Value & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/03/2015 3:18 pm
(@tecnico)
Posts: 36
Eminent Member
Topic starter
 

Reinaldo, funcionou perfeitamente! Muito obrigado.

 
Postado : 31/03/2015 4:28 am