Selección de resultado de búsqueda en un ListBox

Tengo un archivo de Excel con macros para una gestión de biblioteca en la cual he agregado un ListBox para buscar usuarios en una tabla "Usuarios", necesito que después de realizar la búsqueda, al hacer un doble click en un registro desplegado en la lista, posicione el cursor en la tabla y en la celda de la primera columna del registro seleccionado con el doble click, esto es lo que tengo:

Private Sub TXTBusqUsuario_Change()

NumeroDatosUsuarios = Hoja2.Range("B" & Rows.Count).End(xlUp).Row
Hoja2.AutoFilterMode = False
Me.LBXUsuarios = Clear
Me.LBXUsuarios.RowSource = Clear
y = 0
For fila = 8 To NumeroDatosUsuarios

Descripcion = Hoja2. Cells(fila, 2).Value ' El 3 es la columna donde busca, en este caso la C
If UCase(Descripcion) Like "*" & UCase(Me.TXTBusqUsuario.Value) & "*" Then
Me.LBXUsuarios.AddItem
Me.LBXUsuarios.ColumnCount = 6
Me.LBXUsuarios.List(y, 0) = Hoja2.Cells(fila, 1).Value
Me.LBXUsuarios.List(y, 1) = Hoja2.Cells(fila, 2).Value
Me.LBXUsuarios.List(y, 2) = Hoja2.Cells(fila, 3).Value
Me.LBXUsuarios.List(y, 3) = Hoja2.Cells(fila, 4).Value
Me.LBXUsuarios.List(y, 4) = Hoja2.Cells(fila, 5).Value
Me.LBXUsuarios.List(y, 5) = Hoja2.Cells(fila, 6).Value
Me.LBXUsuarios.List(y, 6) = Hoja2.Cells(fila, 7).Value
y = y + 1
End If
Next
End Sub

Private Sub UserForm_Activate()

Me.LBXUsuarios.RowSource = "TablaUsuarios"
Me.LBXUsuarios.ColumnCount = 6

End Sub

1 Respuesta

Respuesta
1

[Ho la Carlos y bienvenido a TodoExpertos!

Visita:

Cursos de Excel y Macros - YouTube


Cambia todo tu código por lo siguiente:

Private Sub TXTBusqUsuario_Change()
  Dim i As Long, fila As Long
  '
  Hoja2.AutoFilterMode = False
  Me.LBXUsuarios.RowSource = ""
  Me.LBXUsuarios.Clear
  i = 0
  For fila = 8 To Hoja2.Range("B" & Rows.Count).End(xlUp).Row
    If UCase(Hoja2.Cells(fila, "B").Value) Like "*" & UCase(Me.TXTBusqUsuario.Value) & "*" Then
      Me.LBXUsuarios.AddItem
      Me.LBXUsuarios.List(i, 0) = Hoja2.Cells(fila, 1).Value
      Me.LBXUsuarios.List(i, 1) = Hoja2.Cells(fila, 2).Value
      Me.LBXUsuarios.List(i, 2) = Hoja2.Cells(fila, 3).Value
      Me.LBXUsuarios.List(i, 3) = Hoja2.Cells(fila, 4).Value
      Me.LBXUsuarios.List(i, 4) = Hoja2.Cells(fila, 5).Value
      Me.LBXUsuarios.List(i, 5) = Hoja2.Cells(fila, 6).Value
      Me.LBXUsuarios.List(i, 6) = Hoja2.Cells(fila, 7).Value
      Me.LBXUsuarios.List(i, 7) = fila
      i = i + 1
    End If
  Next
End Sub
'
Private Sub LBXUsuarios_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Dim fila As Long
  fila = LBXUsuarios.List(LBXUsuarios.ListIndex, 7)
  Hoja2.Select
  Range("A" & fila).Select
End Sub
'
Private Sub UserForm_Activate()
  Me.LBXUsuarios.RowSource = "TablaUsuarios"
  Me.LBXUsuarios.ColumnCount = 7
End Sub

Te recomiendo los siguientes vídeos:

Declarar variables en vba excel. Curso de macros. - YouTube

Consejos para desarrollar macros . curso de excel, curso de macros, excel, macros - YouTube

Macro Cargar Listbox con Matriz. Curso de excel, curso de macros, excel, macros - YouTube


Sal u dos. Dante Amor

Muchas gracias por tu ayuda Dante, te pido disculpas por no haber respondido el 1 de noviembre pero en esa oportunidad omití hacer clic en el botón enviar, tu ayuda a sido fantástica y me solucionó mi inquietud, nuevamente muchas gracias!!!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas