A veces no funciona bien la búsqueda en listbox
A quien me pueda ayudar nuevamente, gracias
Tengo un listbox que se carga con datos desde una hoja excel,
La rutina se inicia dándole doble click en un rango de la hoja excel, lo que genera que se cargue el listbox con los datos, Lo que necesito es que además se posicione en el listbox, en el mismo item al cual yo le dí doble click, en el excel, pero no siempre lo hace, a veces funciona bien durante 5 o 6 oportunidades y a la siguiente se posiciona en otro lugar del listbox, ¿qué variable no estaré usando bien?
Hoja excel ejemplo, mi intención es que al dar doble click en por ej (LOCALS), se abra el listbox que carga los datos y se posicione en el ítem (LOCALS)
Rutina para abrir el listbox
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
Dim rng As Range
Set rng = Range("E2:E500")
If Union(Target, rng).Address = rng.Address Then
Pedidos_last.TextBox1 = ActiveCell.Offset(0, -3) 'envío este dato para luego ubicarlo en el listbox es la columna B, donde hay datos númericos no ordenados
Pedidos_last.Show
Else
End If
End Sub
Rutina del listbox para cargarse
Private Sub userForm_activate()
Dim i
Dim a
Dim hoja
i = 3 'primer fila desde donde empieza a buscar
a = 0 'es para indiciar en el listbox en que fila va
hoja = "taller ricardo" 'es la hoja donde va a buscar los datos
Pedidos_last.ListBox1.Clear
While Sheets(hoja).Cells(i, 1).Value <> ""
Pedidos_last.ListBox1.AddItem (Sheets(hoja).Cells(i, 2).Value)
Pedidos_last.ListBox1.List(a, 1) = (Sheets(hoja).Cells(i, 7).Value)
Pedidos_last.ListBox1.List(a, 2) = (Sheets(hoja).Cells(i, 3).Value)
Pedidos_last.ListBox1.List(a, 3) = (Sheets(hoja).Cells(i, 5).Value)
Pedidos_last.ListBox1.List(a, 4) = (Sheets(hoja).Cells(i, 6).Value)
Pedidos_last.ListBox1.List(a, 5) = (Sheets(hoja).Cells(i, 16).Value)
Pedidos_last.ListBox1.List(a, 6) = (Sheets(hoja).Cells(i, 13).Value)
Pedidos_last.ListBox1.List(a, 7) = (Sheets(hoja).Cells(i, 14).Value)
Pedidos_last.ListBox1.List(a, 8) = (Sheets(hoja).Cells(i, 9).Value)
Pedidos_last.ListBox1.List(a, 9) = (Sheets(hoja).Cells(i, 10).Value)
a = a + 1
i = i + 1
Wend
'Hasta aquí todo bien se cargan los datos en el listbox 1
'ahora quiero posicionarme en el item mismo que dí doble click en el excel cuyo dato estaría en el textbox1 que sería numérico no ordenado y que debe hallarlo en la primer columna del listbox
Dim filx As Integer
Dim j
If TextBox1 = "" Then Exit Sub
For j = 0 To ListBox1.ListCount - 1
If InStr(1, ListBox1.List(j, 0), TextBox1.Value) > 0 Then
filx = j
Exit For
End If
Next j
ListBox1.ListIndex = j
End Sub
Como dije anteriormente, muchas veces se ubica donde lo deseo, pero en determinadas ocasiones no se ubica y no sé donde puede estar la falla