Notifications
Clear all

ajuda Selecionar ultima linha preenchida para impressão

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

Bom dia , tenho uma planilha, bem dizer criei um gerenciador de recibos, e estou enfrentando dificuldade com o botao imprimir, quando eu clico no botao iprimir do meu user form ele faz um leitura da base de dados e imprimi todos recibos de acordo com a base de dados, mas eu quero imprimir apenas o ultimo recibo que adicionei na base de dados.. ajuda ai o codigo do botao e o seguinte.

Public Sub lsImprimirRecibos()
    On Error GoTo TratarErro
    
    'Declaração das variáveis
    'iTotalLinhas é o total de clientes
    'iLinhas é o controle da linha atual no loop
    Dim iTotalLinhas    As Long
    Dim iLinhas         As Long
    
    'Total de clientes, de cima para baixo localiza a última célula preenchida da lista
    iTotalLinhas = Worksheets("Dados").Cells(Rows.Count, 1).End(xlUp).Row
    
    'Inicia na linha logo abaixo do cabeçalho
    iLinhas = 2
    
    'Passa por todos os clientes
    While iLinhas <= iTotalLinhas
        'Atualiza o valor do cliente
        Worksheets("Recibo").Cells(2, 5).Value = Worksheets("Dados").Cells(iLinhas, 1).Value
        
        'Imprime o recibo
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
        
        'Passa para o próximo cliente
        iLinhas = iLinhas + 1
    Wend
    
Sair:
    Exit Sub
TratarErro:
    'Tratamento de erro se houverem problemas
    MsgBox "Houve um erro na impressão!", vbCritical
    GoTo Sair
End Sub

 
Postado : 05/04/2018 3:43 am
(@klarc28)
Posts: 971
Prominent Member
 

Anexe o arquivo

 
Postado : 05/04/2018 5:42 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Se você quer retornar apenas o valor da ultima linha da sheet dados, não precisa realizar o loop, apenas vá direto até ela.

Public Sub lsImprimirRecibos()
    On Error GoTo TratarErro
   
    'Declaração das variáveis
    'iTotalLinhas é o total de clientes
    Dim iTotalLinhas    As Long

   
    'Total de clientes, de cima para baixo localiza a última célula preenchida da lista
    iTotalLinhas = Worksheets("Dados").Cells(Rows.Count, 1).End(xlUp).Row
   

    Worksheets("Recibo").Cells(2, 5).Value = Worksheets("Dados").Cells(iTotalLinhas, 1).Value
       
   'Imprime o recibo
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
       
 
Sair:
    Exit Sub
TratarErro:
    'Tratamento de erro se houverem problemas
    MsgBox "Houve um erro na impressão!", vbCritical
    GoTo Sair
End Sub

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 05/04/2018 6:22 am