Yo tengo este Miguel Este metodo busca en cualqueir parte del ListView por ejemplo si en columna 2 tenes CAJAS DE CHAPA si escribis CHAPA igual te encuentra.
Private Sub Command1_Click()
Dim ret As Long
If Listview1.ListItems.Count = 0 Then
Text1.SetFocus
Else
ret = Buscar(Listview1, Text1.Text, 1, False)
If ret <> 0 Then
Listview1.ListItems(ret).Selected = True
Listview1.ListItems(ret).EnsureVisible
Else
'MsgBox "Dato no encontrado", vbExclamation
End If
Text1.SetFocus
End If
End Sub
Function Buscar(Lv As ListView, Cadena As String, nCol As Integer, bFraseCompleta As Boolean) As Long
Dim i As Long
Dim iStart As Long
Dim oItem As ListItem
If Not Lv.SelectedItem Is Nothing Then
iStart = Lv.SelectedItem.Index + 1
Else
iStart = 1
End If
With Lv
For i = iStart To Lv.ListItems.Count
Set oItem = Lv.ListItems(i)
Dim sItem As String
If nCol = 0 Then
sItem = Lv.ListItems(i)
Else
sItem = oItem.SubItems(nCol)
End If
If bFraseCompleta = False Then
Dim nPos As Integer
nPos = InStr(LCase(sItem), LCase(Cadena))
If nPos <> 0 Then
Buscar = oItem.Index
oItem.EnsureVisible
Exit For
End If
ElseIf bFraseCompleta = True Then
If LCase(sItem) = LCase(Cadena) Then
Buscar = oItem.Index
oItem.EnsureVisible
Exit For
End If
End If
Next
End With
Set Lv.SelectedItem = Nothing
End Function