Notifications
Clear all

Macro de Impressao em Varias Abas

10 Posts
3 Usuários
0 Reactions
1,696 Visualizações
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Bom dia! Estou melhorando uma planilha de trabalho e criei uma macro que filtra os dados criando varias planilhas dentro da mesma pasta, porem para imprimir criei uma macro que imprime apenas as linhas preenchidas, para isso crei um intervalo nomeado com range dinâmico, e funciona bem se tiver uma única planilha e realizar o filtro 1 a 1 porem eu gostaria de ter esse range criado a cada planilha criada pela macro

O range dinâmico crio com a função desloc

A macro de impressão assim

Sub Imprimir

Range("Nome do Range").printout

End Sub

Assim imprime apenas as linhas preenchidas

So que como crio varias abas, toda vez q a macro roda ela apaga as abas e cria novamente, o intervalo nomeado da erro #ref, como impedir o erro e a macro de impressao funcionar em todas as planilhas criadas.

 
Postado : 08/02/2016 7:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se as planilhas são criadas toda vez, talvez possa utilizar o usedrange?
Seria algo =/- assim:
ActiveSheet.UsedRange.PrintOut

 
Postado : 08/02/2016 9:12 am
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Reinaldo obrigado pela tentativa, mas usedrange não atende pq imprime todas as linhas da planilha que existir formatação (bordas), e com o range dinâmico so imprime as linhas com dados.

 
Postado : 08/02/2016 11:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como são criadas novas "achei" que seriam apenas os dados.
Poste como cria/com e sua range nomeada, talvez possamos criar em conjunto com a "criação das planilhas

 
Postado : 08/02/2016 2:40 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Segue o exemplo Reinaldo

Apenas a parte da macro que filtra os dados e que nao estao na planilha...

Antes de rodar a macro da planilha modelo veja as macros das demais planilhas

Os botoes pouco importa me a impressao sair como no exemplo.

Veja que a planilha vai ate a linha 22 com bordas, mas ao clicar no botao ela imprime somente o que tem dados

Inseri dados manualmente

Criei uma macro para cada uma das planilhas que devem ser impressas, mas posso ter 50 abas na planilha

 
Postado : 08/02/2016 3:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Talvez assim:

Sub imprimir()
For x = 1 To Sheets.Count
    If Sheets(x).Name <> "Modelo" And Sheets(x).Name <> "Teste" Then
        Sheets(x).Select
        ActiveSheet.Range("A8:B" & 7 + Application.WorksheetFunction.CountA(Range("A:A"))).PrintPreview
    End If
Next
Sheets("Modelo").Select
End Sub
 
Postado : 08/02/2016 3:54 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

No modelo funcionou bem vou tentar adaptar a macro original e dou retorno.

 
Postado : 08/02/2016 4:16 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Reinaldo consegui ajustar a planilha conforme o codigo que postou, mas so agora percebi o problema de que ele imprime todas as abas e preciso poder escolher qual ou quais abas pretendo imprimir...

Nao consegui ajustar

 
Postado : 08/02/2016 7:40 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Quebrei um pouco a cabeça mais resolvi...

Obrigado de novo.

 
Postado : 08/02/2016 8:04 pm
(@messiasmbm)
Posts: 0
New Member
 

Uma maneira também era colocar uma estrutura if em suas abas estáticas deixando de fora as dinâmicas .

 
Postado : 08/02/2016 9:22 pm