Tempo fa, comunque, mi serviva fare una cosa del ge[[nere per una ListBox. Potresti riadattare il codice, controlla solo che le proprietà siano le stesse:
codice:
Dim Item() As Integer
Dim intItem As Integer
Dim z As Integer


Private Sub cmdTrova_Click()
Dim i As Integer

ReDim Item(0 To ListBox.ListCount - 1) ' Ridimensiona l'array
intItem = 0 'Variabile per gli indici della matrice

'Ciclo per memorizzare i risultati:
For i = 1 To ListBox.ListCount
    If InStr(1, UCase(ListBox.List(i - 1)), UCase(txtCerca.Text)) Then
        Item(intItem) = i - 1
        intItem = intItem + 1
    End If
Next i

'Posisiona la selezione sul primo risultato di ricerca, se ve ne sono stati
If intItem <> 0 Then
    ListBox.ListIndex = Item(0)
    cmdTrovaSuccessivo.Enabled = True
Else
    MsgBox "Nessun valore trovato per " & txtCerca.Text & "!", vbExclamation, "Attenzione!"
End If

z = 1

End Sub

Private Sub cmdTrovaSuccessivo_Click()

For z = z To intItem - 1
    ListBox.ListIndex = Item(z)
    z = z + 1
    Exit Sub
Next z

MsgBox "La ricerca è completata.", vbInformation, "Ricerca"

End Sub

Private Sub Form_Load()
'Gestisce gli Enabled
cmdTrova.Enabled = True
cmdTrovaSuccessivo.Enabled = False
End Sub