Alexandre,
Eu encontrei um código que caiu como uma luva!
O mesmo pega os dados da listview, lança-os para uma sheets e depois os imprimi.
No Initialize:
Private Sub UserForm_Initialize()
Set Ws = Worksheets(2)
Set lstv = Me.lslista
end sub
No botão de imprimir:
Private Sub Image39_Click()
If MsgBox("Confirma a impressão?", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
'Exporta dados para a PlanPrint
Dim i
For i = 1 To Me.lstv.ListItems.Count
With PlanPrint.Range("a65000").End(xlUp)
.Offset(1, 0) = Format(lstv.ListItems(i), "0,00")
.Offset(1, 1) = lstv.ListItems(i).ListSubItems(1)
.Offset(1, 2) = lstv.ListItems(i).ListSubItems(2)
.Offset(1, 3) = lstv.ListItems(i).ListSubItems(3)
.Offset(1, 4) = lstv.ListItems(i).ListSubItems(7)
.Offset(1, 5) = lstv.ListItems(i).ListSubItems(4)
.Offset(1, 6) = Format(lstv.ListItems(i).ListSubItems(5), "Currency")
.Offset(1, 7) = lstv.ListItems(i).ListSubItems(9)
End With
Next
With PlanPrint
'planilha que recebe os dados da listview para serem impressos.
.Range("a65000").End(xlUp).Offset(2, 0).Value = Date & _
". Sistema de Administração Financeira - Lorenzon."
End With
Dim cont
cont = Worksheets("PlanPrint").UsedRange.Rows.Count + 1 'Contas os registros
PlanPrint.Activate
PlanPrint.Range("a1:d" & cont).Select 'Seleciona os dados para a impressao
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,1,,,TRUE,,FALSE)" 'Imprime
PlanPrint.Range("a8:d" & cont).Clear 'Limpa os dados
End If
End If
End Sub
Postado : 19/03/2015 9:47 am