Ir ao conteúdo
  • Cadastre-se

VBA Área de impressão e pdf


Ir à solução Resolvido por Basole,

Posts recomendados

Bom dia,

 

Procurei no fórum e internet mas não encontrei algo parecido, tenho uma planilha com cinco abas, mas preciso criar um pdf contendo só as três primeiras, sendo que a segunda e a terceira variam o range, ou seja, preciso de um VBA que identifique a área de impressão de acordo com o preenchimento das abas dois e três e crie um pdf das mesmas + a primeira aba.

Alguém poderia me ajudar com este problema?

 

Att,

 

Guilherme.

Link para o comentário
Compartilhar em outros sites

Segue exemplo, altere de acordo c/ o nome das suas plan(s)

 

Sub Teste3AbasPDF()
    Dim NomArq As String
    Dim stArqName As String
    With ThisWorkbook.ActiveSheet.PageSetup
        Worksheets("plan1").PageSetup.PrintArea = Worksheets("plan1").UsedRange.Address
        Worksheets("plan2").PageSetup.PrintArea = Worksheets("plan2").UsedRange.Address
        Worksheets("plan3").PageSetup.PrintArea = Worksheets("plan3").UsedRange.Address
        .Zoom = False    '(Pode-se ajustar o conteudo ao tam. da pag. Ex 65, 70,79,85, 95 a 100)
        .Orientation = xlPortrait    ' xlLandscape (para paisagem)
    End With
    NomArq = "TestePDF-" & Year(Date) & Month(Date) & Day(Date)
    stArqName = ActiveWorkbook.Path & "\" & NomArq & ".pdf"
    ThisWorkbook.Sheets(Array("Plan1", "Plan2", "Plan3")).Select

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                    stArqName _
                                    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                                                                                              :=False, OpenAfterPublish:=True    'False (para nao abrir pdf, apos exportar)
    Sheets("plan1").Select
End Sub

Link para o comentário
Compartilhar em outros sites

@Basole É quase isso cara, aconteceram só dois problemas,

1 - O VBA identifica todas as células formatadas, porém gostaria só que identificasse as células com dados, porém nas abas "failures" e "correct" à área de impressão precisa estar entre as colunas A:H.

2 - A aba "report" fica desconfigurada em relação as demais abas, a página fica mais "estreita", estou anexando a planilha.

 

Obrigado pela força!

Report 2015 - Foton ESN 36513214 - Copy.xlsx

Link para o comentário
Compartilhar em outros sites

Olá Guilherme, veja agora se é quase ou isso.   

 

Fiz as altrações no código, a macro cria os intervalos de dados (range.name) nas 3 abas, seleciona-as e exporta 1 unico PeDeéFe 

Inclui tbem. a macro 'Inserir_imagens' e insirei umas imagens para teste, pois a plan que voce compartilhou, veio sem.

abx. 

Report 2015 - Foton ESN 36513214 - Copy.zip

Link para o comentário
Compartilhar em outros sites

 

 

 gostaria que a primeira aba "report" não fosse dividida em duas e que todas as paginas fossem configuradas em A4 ou relacionada, pois este relatório irá ser transformado em pdf e também impresso.

O  que está querendo é  que a aba "report" e as outras 2 caíbam em 1 pagina (cada uma) , e com orientação retrato ?

 

Bom Isto é  uma questão de ajuste de conteúdo (dados)  ao tamanho da pagina.

 

Eu deixei no codigo essas opções de ajustes p/ voce poder configurar:

 

No código na 1ª  page setup da aba "report" altere conf. abaixo:

De:  .Zoom = False   Para:   .Zoom = 65De: .Orientation = xlLandscape  Para:   .Orientation = xlPortrait 

E + abaixo na page setup das outras duas abas 

De:  .Zoom = False   Para:   .Zoom = 49De:    .Orientation = xlLandscape  Para:   .Orientation = xlPortrait 

veja o resultado (anexo),  c/  os ajustes acima  

 

abx.

 

    

TestePDF-201532.pdf

Link para o comentário
Compartilhar em outros sites

Bom dia guilherme, existem diferenças de dimensões da largura de pag. entre as abas, apesar da 1ª aba "Report" se estender até a coluna "L" a 2ª a "H" e a 3ª a "G" as medidas das larguras são diferentes entre elas, por isso que configurei a 1ª aba c/ 'zoom 65'  e as demais c/ 'zoom 49'. 

Veja o que acontece  (vide print 1)  se padronizar o zoom para as 3 abas c/ a larg. das colunas como estão:  (a ultima coluna, acaba 'caindo' para outra pagina)

Miniaturas_das_Paginas.jpg

Agora com estreitamento de ajuste das colunas das abas 2 e 3  c/ o zoom 65 p/ abas "report, Failures,Correct"  (vide print 2):

Miniaturas_das_Paginas2.jpg

Bom concluindo: para que as 3 paginas PDF ficam (com a largura ) padronizadas, é necessario padronizar as larguras das 3 abas.

Segue o link  da planilha c/ estreitamento da larg. das colunas p/ chegar ao ajuste acima.

Veja se consegue configurar as formatações como fonte tamanho da fonte etc.

  https://drive.google.com/file/d/0Bz6qa6N0K3fKeDR5d3YzUE5YYUE/view?usp=sharing

Link para o comentário
Compartilhar em outros sites

  • Solução

Guilherme, voce tem que ajustar as colunas até que todas as colunas com conteudo fiquem 'dentro' da linha pontilhada *

 

* (esta linha é criada quando o excel cria uma area de impresão)

 

De qq forma, estou enviando novamente o arq. pois nao tenho certeza se savei c/ essas alteraçoes no momento que fiz o upload. 

 

abx. 

 

Report 2015 - Foton ESN 36513214 - Copy.zip

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia guilherme, no codigo vba, nas configuraçoes de zoom, voce pode aumentar o valor pra mais 1 ou mais 2, ou seja se estiver 62 altere para 63 ou 64, dependendo do resultado obtido.

E tambem em layout da pagina -> margens, voce pode ajustar para o minino do lado esquerdo e direito.

 

abx.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia Guilherme, fico contente por ter conseguido. So um dica,de prevencao, se pudesse relacionar as medidas de todas as colunas das 3 abas, poderia incluir essa informacao no codigo, evitando assim que amanha ou depois desconfigure, ai você teria todo o trabalho de re-configurar.

 

abx.  

Link para o comentário
Compartilhar em outros sites

  • mês depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...