Notifications
Clear all

Erro de Impressão.

5 Posts
2 Usuários
0 Reactions
1,022 Visualizações
(@edmaxy)
Posts: 54
Trusted Member
Topic starter
 

Olá amigos,

estou com uma nova dúvida:

Adaptei um código aqui do fórum mesmo, porém estou com dificuldade de deixar ele conforme necessito.

o código é o seguinte:
Private Sub Label9_Click()

Dim sh As Worksheet
Dim UltLin As Long

UltLin = Cells(Rows.Count, "A").End(xlUp).ROW
For Each sh In ActiveWorkbook.Worksheets

If (sh.Name = "Relatorio") Then

sh.PrintOut
End If
Next sh

'Oculta o Form
UserForm1.Hide

'Reexibe o App
Application.Visible = True

'Visualiza Impressão
Worksheets("Relatorio").PrintPreview

'Oculta o App ao fechar a visualização
Application.Visible = False

'Reexibe o Form
UserForm1.Show

End Sub
E minhas dúvidas são:
como fazer par que o só considere para imprimir a planilha até onde tiver células preenchidas ( ele está imprimindo 264 páginas mesmo só tendo 2 preenchidas.
como fazer para o excel perguntar antes se realmente desejo imprimir(ele já começa a impressão ao clicar no comando)

Desde já agradeço.

Edmaxy :D

 
Postado : 20/02/2014 10:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edmaxy,

Boa tarde!

Para ficar mais fácil lhe ajudar, anexe um modelo compactado!

Att,

 
Postado : 20/02/2014 10:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que vi na rotina, você quer imprimir somente a Aba "Relatorio", se for isto, não precisa fazer o Loop de verificação entre todas as abas (For Each sh In ActiveWorkbook.Worksheets), orientamos direto na rotina, faça o teste com o código abaixo e qualquer duvida retorne.

Veja que deixei comentado no código quanto ate qual Coluna pretende imprimir, na rotina esta até a coluna "E", se for diferente, ajuste na seguinte linha: Prt_Range = "A1:E" & UltLin

Private Sub Label9_Click()
    Dim Prt_Range
    Dim UltLin As Long
    Dim sPrintSimNao   As Integer
    
    'Definimos a aba que queremos
    Dim shRelatorio As Worksheet
    Set shRelatorio = Worksheets("Relatorio")
    
    'Verifica a Ultima linha preenchida
    UltLin = shRelatorio.Cells(Rows.Count, "A").End(xlUp).Row

    'Define o Range preenchido
    'Aqui estamos definindo ate a Coluna "E" - ajuste se for mais ou menos
    Prt_Range = "A1:E" & UltLin
    
    'Definimos a àrea de Impressão
    shRelatorio.PageSetup.PrintArea = Prt_Range
    
    sPrintSimNao = MsgBox("Deseja continuar com a Impressão das Fichas ?", vbYesNo, "Alerta")
        
    'Se SIM Imprime
    If sPrintSimNao = vbYes Then
            shRelatorio.PrintOut

            
        'Oculta o Form
        UserForm1.Hide
   
    Else
        'Se NAO - Sai da Rotina
        Exit Sub
    End If
   
    'Reexibe o App
    Application.Visible = True
    
    'Visualiza Impressão
    shRelatorio.PrintPreview
    
    'Oculta o App ao fechar a visualização
    Application.Visible = False
    
    'Reexibe o Form
    UserForm1.Show
    
End Sub

[]s

 
Postado : 20/02/2014 11:24 am
(@edmaxy)
Posts: 54
Trusted Member
Topic starter
 

Olá Mauro,

Deu certo sim a rotina, está perfeita.

Obrigado pela atenção e ajuda.

*Obrigado Marciel pela intenção.

Edmaxy.

 
Postado : 20/02/2014 12:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 20/02/2014 3:43 pm