Buenas... consegui este codigo de la web el cual busca datos solo en la Primera Columna de un listview, pero necesito que busque los datos UNICAMENTE de la tercera columna, ¿que podria modificar para obtener este resultado? .. muchas gracias por alguna sugerencia.
Option Explicit
'UDT necesarias para usar con SendMessage
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type LVFINDINFO
flags As Long
psz As String
lParam As Long
pt As POINTAPI
vkDirection As Long
End Type
'Función Api SendMessage
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'Constantes para SendMessage
Private Const LVM_FIRST = &H1000
Private Const LVM_FINDITEM = (LVM_FIRST + 13)
Private Const LVFI_PARAM = &H1
Private Const LVFI_STRING = &H2
Private Const LVFI_PARTIAL = &H8
Private Const LVFI_WRAP = &H20
Private Const LVFI_NEARESTXY = &H40
'Variable de retorno y para la estructura
Dim lRet As Long, LFI As LVFINDINFO
'Procedimiento que busca: Se le envía el control ListView y el texto a buscar
Private Sub Buscar_ListView(ListView As ListView, Cadena As String)
'Cadena parcial
LFI.flags = LVFI_PARTIAL Or LVFI_WRAP
If Cadena = "" Then
Exit Sub
End If
'Se le asigna a esta variable la cadena que luego se le envía a SendMessage
LFI.psz = Cadena
'Le enviamos el mensaje LVM_FINDITEM, la estructura y rel ListView
lRet = SendMessage(ListView1.hwnd, LVM_FINDITEM, -1, LFI)
If lRet >= 0 Then
'Seleccionamos el item del Listview
ListView1.SelectedItem = ListView1.ListItems(lRet + 1)
'Propiedad opcional
ListView1.HideSelection = False
'Si el item se encuentra fuera del área visible desplazamos la lista _
para poder visualizarlo con el método EnsureVisible
ListView1.SelectedItem.EnsureVisible
End If
End Sub
Function Buscar(Lv As ListView, _
Cadena As String, _
nCol As Integer) As Long
Dim i As Long
Dim oItem As ListItem
With Lv
For i = 1 To Lv.ListItems.Count
Set oItem = Lv.ListItems(i)
If InStr(StrConv(oItem.SubItems(nCol), vbLowerCase), StrConv(Cadena, vbLowerCase)) Then
Buscar = oItem.Index
Exit For
End If
Next
End With
End Function
Private Sub txtbuscar_Change()
Call Buscar_ListView(ListView1, txtbuscar)
End Sub