Notifications
Clear all

Ajuste de colunas na impressão

12 Posts
5 Usuários
0 Reactions
2,245 Visualizações
(@cazevedo)
Posts: 21
Eminent Member
Topic starter
 

Boa tarde, estou precisando criar uma macro para imprimir algumas tabelas, porém o comando que eu fiz ele não ajusta as colunas para uma página só. As linhas não tem problema sairem em mais de uma página, mas as colunas sim.

O comando que estou utilizando é esse:

Sub Visualiza_Impressao()
ActiveSheet.PageSetup.PrintArea = Range(Cells(3, 13), Cells(110, 22)).Address
Application.Dialogs(xlDialogPrintPreview).Show
End Sub

Alguem poderia ajudar?

Obrigado.

 
Postado : 02/12/2016 2:35 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Cazevedo,

Primeiro verifique a área de impressão manualmente, vá em Layout da Página -> Área de Impressão e veja se seu dados estão dentro dessa área.
Para facilitar a colocação da tabelas você pode ir em Exibir -> Layout de Página.

Para a montagem de uma macro, coloque um exemplo, assim fica mais fácil ajudar.

att,

 
Postado : 02/12/2016 3:07 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Cazevedo, além do que o colega Bruno falou, também defina a propriedade a seguir para a 01 página de largura:

ActiveSheet.PageSetup.FitToPagesWide = 1

 
Postado : 02/12/2016 6:56 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Formata a planilha para que a impressao saia corretamente, e assunto resolvido

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 03/12/2016 2:18 pm
(@cazevedo)
Posts: 21
Eminent Member
Topic starter
 

Bom dia amigos, segue o arquivo com o exemplo.

Eu não formatei a planilha para sair corretamente, porque é justamente isso que preciso que a macro faça, vou ter várias tabelas com tamanhos diferentes, e preciso que ela ajuste automaticamente para 01 página de largura.

EdsonBR, eu coloquei o comando que falou mas ele não fez o ajuste ainda. Será que está na posição errada?
Dá uma olhada no exemplo que envio, por favor.

Obrigado.

Abs

 
Postado : 06/12/2016 7:39 am
(@mprudencio)
Posts: 2749
Famed Member
 

Pra isso nao precisa de macros amigo.

Configurar Pagina > Pagina
Selecione
Ajustar para 1 de largura

Deixe o outro campo em branco

Confirme

Ou seja basta configurar a pagina para que a impressão saia corretamente.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 06/12/2016 10:33 am
(@cazevedo)
Posts: 21
Eminent Member
Topic starter
 

MPrudencio, são mais de 300 planilhas, por isso estou tentando criar essa macro. Senão vou ter que entrar em cada uma e configurar na mão.

Abs

 
Postado : 06/12/2016 11:36 am
(@mprudencio)
Posts: 2749
Famed Member
 

As 300 planilhas estao na mesma pasta?

Ou sao 300 pastas?

Se forem todas em uma mesma pasta e forem todas iguais

Basta o seguinte

Clique sobre a aba

Botao direito Selecionar todas as planilhas

Seguir os passos acima.

Selecione outra planilha para envitar uma edição em massa.

Se forem 300 pastas realmente com VBA.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 06/12/2016 12:09 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 
Sub Visualiza_Impressao()
   With ActiveSheet
      .ResetAllPageBreaks
      .PageSetup.FitToPagesWide = 1
      .PageSetup.PrintArea = Range(Cells(3, 2), Cells(110, 11)).Address
      .PrintPreview
   End With
End Sub

 
Postado : 06/12/2016 9:21 pm
(@cazevedo)
Posts: 21
Eminent Member
Topic starter
 

Edson, bom dia.

Já havia tentado usar esse código para definir a largura da página ( .PageSetup.FitToPagesWide = 1), mas ele não ajusta. Na visualização continua quebrando.
Parece uma coisa tão simples, mas tá dificil solucionar com macro.

Obrigado.
Abs

 
Postado : 07/12/2016 7:11 am
Basole
(@basole)
Posts: 487
Reputable Member
 

Veja este opção:

Sub Visualiza_Impressao_2()
With ThisWorkbook
     .Activate
    .Application.PrintCommunication = False
    With .ActiveSheet.PageSetup
        .PrintArea = ""
        .FitToPagesWide = 1
        .FitToPagesTall = False
    End With
    .Application.PrintCommunication = True
    .Application.Dialogs(xlDialogPrintPreview).Show
    End With
End Sub

fonte: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.pagesetup.fittopagestall(v=office.15).aspx

Click em se a resposta foi util!

 
Postado : 07/12/2016 8:34 am
(@cazevedo)
Posts: 21
Eminent Member
Topic starter
 

Basole

Show!!!! Muito obrigado Basole. Resolvido, só delimitei o espaço que queria no .PrintArea e funcionou.
Abs

 
Postado : 07/12/2016 1:10 pm