SoloCodigo
		Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: aprendiz_333 en Jueves  6 de Diciembre de 2007, 07:05
		
			
			- 
				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