É, eu carrego a listview através dos dados contidos na aba BD, faço o filtro pela listview e, depois, para imprimi-los, passo-os para uma outra aba e chamo a impressora.
O meu pc é um core i5, mas, dependendo do número de linhas a serem empresas, leva-se muito tempo para para concluir todo o processo de impressão.
Veja o código que utilizo, talvez tenha algo a ser feito para otimizá-lo.
Sub imprimir()
Dim iRow As Integer
Dim i, w, lastRow As Integer
Dim rStartCell As Range
Plan35.Range("c12:m1000").Value = ""
Set rStartCell = Plan35.Range("c1000").End(xlUp).Offset(1, 0)
For i = 1 To lslista.ListItems.Count
Label109.Visible = True
If lslista.ListItems(i).Checked = True Then
Label109.Visible = True
iRow = iRow + 1
rStartCell.Cells(iRow, 1).Value = lslista.ListItems(i).Text
rStartCell.Cells(iRow, 2).Value = lslista.ListItems(i).ListSubItems(1).Text
rStartCell.Cells(iRow, 3).Value = lslista.ListItems(i).ListSubItems(2).Text
rStartCell.Cells(iRow, 4).Value = lslista.ListItems(i).ListSubItems(3).Text
rStartCell.Cells(iRow, 5).Value = lslista.ListItems(i).ListSubItems(4).Text
rStartCell.Cells(iRow, 6).Value = CDbl(lslista.ListItems(i).ListSubItems(5).Text)
rStartCell.Cells(iRow, 7).Value = CDate(lslista.ListItems(i).ListSubItems(6).Text)
rStartCell.Cells(iRow, 8).Value = CDate(lslista.ListItems(i).ListSubItems(7).Text)
rStartCell.Cells(iRow, 9).Value = lslista.ListItems(i).ListSubItems(8).Text
rStartCell.Cells(iRow, 10).Value = lslista.ListItems(i).ListSubItems(9).Text
rStartCell.Cells(iRow, 11).Value = lslista.ListItems(i).ListSubItems(10).Text
End If
Next
Sheets("imprimir").Select
Range("c12:m" & [c12:m1000].SpecialCells(xlCellTypeLastCell).ROW).Select
Dim selectimpressora
selectimpressora = Application.Dialogs(xlDialogPrinterSetup).Show
If selectimpressora = True Then
Range("c4:m" & [c4:m1000].SpecialCells(xlCellTypeLastCell).ROW).Select
Application.Dialogs(xlDialogPrint).Show
End If
Postado : 10/12/2014 5:59 am