Ciao, potresti fare un ciclo di stampe (uno per pagina), suddividendo le righe da stampare a gruppi di n (nel tuo esempio 50). Es:
Sub Stampa(ByVal Lista As ListView, ByVal RighePerPagina As Byte)
Dim nPagine As Integer
If (Lista.Items.Count Mod RighePerPagina) <> 0 Then
nPagine = CInt((Lista.Items.Count / RighePerPagina)) + 1
Else
nPagine = Lista.Items.Count / RighePerPagina
End If
Dim i, j As Integer
Dim righeRimanenti As Integer
For i = 1 To nPagine
righeRimanenti = Lista.Items.Count - (i * RighePerPagina)
If righeRimanenti / RighePerPagina >= 1 Then
For j = i * RighePerPagina To (i * RighePerPagina) + RighePerPagina
'
' codice per stampare le pagine dalla prima alla penultima
' utilizzando come indice dell'elemento del ListView la j
'
Next
Else
For j = i * RighePerPagina To (i * RighePerPagina) + righeRimanenti
'
' codice per stampare l'ultima pagina
' utilizzando come indice dell'elemento del ListView la j
'
Next
End If
Next
End Sub
Premetto che è un codice scritto al momento, senza l'IDE sotto mano.
Ciao!
Ciamiz