Notifications
Clear all

Criar arquivo PDF

9 Posts
2 Usuários
0 Reactions
1,953 Visualizações
(@bruno1214)
Posts: 31
Eminent Member
Topic starter
 

Boa tarde Pessoal!

Vejam se vocês conseguem me ajudar, estou precisando exportar alguns documentos que tenho em Excel, para o formato PDF, porem, não vou exportar todas a pasta, vou exportar algumas colunas apenas. Exemplo: Preciso exportar as colunas inteiras: A, C, F, H. E também, se possível, preciso que gere no formato de folha Paisagem, para que todas as informações fiquem nesta página.

Aguardo retorno,
Obrigado!

Estava usando esta macro, mas ela não se adapta ao que preciso:
"Sub gravarMultiPlanPDF()

destino = "Área de Trabalho"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
destino & Range("B1").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
"

 
Postado : 06/05/2015 11:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pela falta de mais detalhes, veja se consegue adaptar, a rotina copia as colunas para outra aba, configura a pagina e salva pdf.

Sub ExportaColunas_To_Pdf()
    Dim LC, LR As Integer
    Dim sColA, sColC, sColE, sColF, sColH As Range
    Dim shtResultPrint As Worksheet
    
    strPdfName = "Área de TrabalhomeuArquivo.pdf"
    
    Set shtResultPrint = Worksheets("SavePdf")
    
    'Define as colunas
    Set sColA = Range("A1:A17")
    Set sColC = Range("C1:C17")
    Set sColE = Range("E1:E17")
    Set sColF = Range("F1:F17")
    Set sColH = Range("H1:H17")

    'Copia as colunas para a Aba que será salva como pdf
    sColA.Copy shtResultPrint.Range("A1")
    sColC.Copy shtResultPrint.Range("B1")
    sColE.Copy shtResultPrint.Range("C1")
    sColF.Copy shtResultPrint.Range("D1")
    sColH.Copy shtResultPrint.Range("E1")
    
    'Captura a ultima linha
    LR = shtResultPrint.Cells(Rows.Count, "A").End(xlUp).Row
    
    'Configura a página
    With shtResultPrint.PageSetup
        .PrintArea = "A1:" & "E" & LR
        .Orientation = xlLandscape
    End With
  
    shtResultPrint.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPdfName, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
    OpenAfterPublish:=False
  
End Sub

[]s

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

 
Postado : 06/05/2015 5:44 pm
(@bruno1214)
Posts: 31
Eminent Member
Topic starter
 

Mauro, bom dia!

Obrigado pela ajuda, coloquei em anexo, a planilha que vou usar, as colunas no caso serão "A3:A2000" ; "B3:B2000" ; "D3:D2000" ; "H3:H2000" ; "I3:I2000" ; "M3:M2000" ; "N3:N2000" ; "O3:O2000" ; "R3:R2000".

E o PDF, preciso que as colunas pelo menos fiquem em 1 página, já que as linhas não vão ficar.

Tentei adaptar este macro, porem não consegui, pode me ajudar?

Aguardo, obrigado!

 
Postado : 07/05/2015 4:39 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

bruno, conforme as Regras do Forum, todo anexo tem de estar compactado em dos formatos .zip - .rar - .ice e não ultrapassar o tamanho de 2 mb, por isto apaguei seu o seu arquivo.
Regras do Forum - viewtopic.php?f=7&t=203

Quanto a sua questão, eu não tenho como baixar o arquivo, mas não é dificil ajustar a rotina, faça o seguinte :
1º - Monte a aba que quer salvar com as colunas conforme sua necessidade;
2º - Use o Gravador de Macros e vá em configurar página e ajuste as opções até que a página fique da forma que precisa;
3º - Pare a gravação e edite a macro gravada.

Irá ver várias linhas com todos os parametros de configuração da página, como Margens, tamanho do papel, orientação etc... como não sei a largura das suas colunas, acredito que irá usar os parametros de margens : .LeftMargin, .RightMargin, .TopMargin, .BottomMargin., qualquer um dos parametros é só colocar dentro desta linhas :

'Configura a página
    With shtResultPrint.PageSetup
        .PrintArea = "A1:" & "E" & LR
        .Orientation = xlLandscape
    End With

Qualquer duvida retorne.

[s

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

 
Postado : 07/05/2015 5:28 am
(@bruno1214)
Posts: 31
Eminent Member
Topic starter
 

Mauro, bom dia!

Não entendi a parte de ajustar a rotina. Não sei muito mexer com VBA..

Deixei a planilha em anexo com o formato correto agora!

Aguardo,
Obrigado!

 
Postado : 07/05/2015 8:23 am
(@bruno1214)
Posts: 31
Eminent Member
Topic starter
 

Mauro, boa tarde!

Consegui fazer o que precisava com este código:

Sub salvarpdf()
Dim SvInput As String
Dim Data As String
Dim var_MENSAGEM
Dim Nome As String
Dim UltimaLinha As Long
    
UltimaLinha = Cells(Rows.Count, 2).End(xlUp).Row

ActiveSheet.PageSetup.PrintArea = Range("$A$3:$O$" & UltimaLinha).Address
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.62992125984252)
        .RightMargin = Application.InchesToPoints(0.236220472440945)
        .TopMargin = Application.InchesToPoints(0.354330708661417)
        .BottomMargin = Application.InchesToPoints(0.354330708661417)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .PrintErrors = xlPrintErrorsDisplayed
    End With
Nome = "Monitoramento"
Data = VBA.Format(VBA.Date, "dd-mm-yyyy")
SvInput = ThisWorkbook.Path & Application.PathSeparator & Nome & " - " & Data & ".pdf"
        With ActiveSheet
            .ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=SvInput, _
                OpenAfterPublish:=False
        End With
End Sub
        

Porem, não consegui fazer de um jeito que eu escolha as abas, tem algum jeito de alterar isto?

Aguardo

 
Postado : 07/05/2015 1:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

bruno, nesta rotina da para liminar varias opções que não irão afetar a sua configuração, mas depois vemos isto.
Primeiro quero saber o que quer dizer com "não consegue escolher as abas". Que abas ? o seu anexo só tem uma.
Se está se referindo a rotina anterior que copia as colunas, detalhe melhor qual serão os passos que ira realizar, que na minha opinião eu faria em dois passos, ajustaria a primeira só para copiar e a segunda para configurar a pagina e salvar.

Fico no aguardo

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

 
Postado : 07/05/2015 4:59 pm
(@bruno1214)
Posts: 31
Eminent Member
Topic starter
 

Mauro, me desculpe, quando digo Aba, me refiro as colunas, rs.

Este código só funciona no Excel 2010? Pois estou tentando abrir esta planilha em um outro PC, que no caso tem Excel 2007 e aparece este erro quando uso o botão para o macro funcionar:
"Argumento ou chamada de procedimento errada"

 
Postado : 08/05/2015 4:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

bruno, acontece que o excel 2007 não tem por padrão a opção de salvar em PDF, tem de instalar um suplemento, alias não tenho certeza se a versão 2007 abrira normalmente arquivos feitos em versões acima.

Suplemento do 2007 Microsoft Office: Salvar como PDF ou XPS da Microsoft
https://www.microsoft.com/pt-br/downloa ... .aspx?id=7

Quanto as colunas, depois ajusto as duas rotinas, no momento tenho os afazeres normais de todo dia.

[]s

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

 
Postado : 08/05/2015 5:29 am