salve a tutti
avendo questa routine
codice:
    Private Sub VisualizzaRecordCercati(ByVal NumCol As Integer, Tiporicerca As TipoRicerca)
        Dim i As Integer

inizio:

        For i = 0 To Me.ListView1.Items.Count - 1
            Select Case Tiporicerca
                Case Is = FRM_ListaArticoli.TipoRicerca.Maggiore
                    If Not ListView1.Items(i).SubItems(NumCol).Text > valoreA Then
                        ListView1.Items(i).Remove()
                        GoTo inizio
                    End If
            End Select
        Next
    End Sub
ho letto spesso che bisognerebbe evitare di mettere il goto
purtroppo in questa situazione non so come fare, in quanto se cancello un item dalla lista devo rifare il ciclo,quindi :
se richiamo la routine con un call...crea un ciclo infinito se trova qualcosa
se utilizzo il goto...incappo in critiche da forum

come posso modificarla togliendo il goto?
misto spremento non trovo una soluzione