Dudas sobre forms en excel VBA

Espero me puedan ayudar, estoy trabajando con forms en vba de excel...

Tengo mi form para buscar registros de mi base de datos general, en este form tengo 3 texbox para buscar por Nombre, clave y estatus, el filtro se muestra en una listBox...

Por lo que requiero ayuda es para poder seleccionar un registro de la listbox y poder invocar un un form para modificar o actualizar el registro...

Agrego imágenes de los forms de buscar y modificar... En el de modificar, los campos en gris son los que estaría usando para actualizar el registro

Agrego código de los forms:

form para buscar registros

Private Sub btn_SALIR_Click()
Unload Me

End Sub

--------------------------------------------------------------------------------------------------------------

Private Sub TEXT_BUSCAR1_Change()

numeroDatos = Hoja1.Range("B" & Rows.Count).End(xlUp).Row

Me.LISTA_BUSQUEDA = Clear
Me.LISTA_BUSQUEDA.RowSource = Clear

Y = 0

For Fila = 4 To numeroDatos

clave = Hoja1.Cells(Fila, 6).Value

'

If UCase(clave) Like "*" & UCase(Me.TEXT_BUSCAR1.Value) & "*" Then
Me.LISTA_BUSQUEDA.AddItem
Me.LISTA_BUSQUEDA.List(Y, 0) = Hoja1.Cells(Fila, 2).Value
Me.LISTA_BUSQUEDA.List(Y, 1) = Hoja1.Cells(Fila, 3).Value
Me.LISTA_BUSQUEDA.List(Y, 2) = Hoja1.Cells(Fila, 4).Value
Me.LISTA_BUSQUEDA.List(Y, 3) = Hoja1.Cells(Fila, 5).Value
Me.LISTA_BUSQUEDA.List(Y, 4) = Hoja1.Cells(Fila, 6).Value
Y = Y + 1
End If

Next

End Sub

--------------------------------------------------------------------------------------------------------------
Private Sub TEXT_BUSCAR2_Change()

numeroDatos = Hoja1.Range("B" & Rows.Count).End(xlUp).Row

Me.LISTA_BUSQUEDA = Clear
Me.LISTA_BUSQUEDA.RowSource = Clear
Y = 0

For Fila = 4 To numeroDatos

nombre = Hoja1.Cells(Fila, 5).Value

'

If UCase(nombre) Like "*" & UCase(Me.TEXT_BUSCAR2.Value) & "*" Then
Me.LISTA_BUSQUEDA.AddItem
Me.LISTA_BUSQUEDA.List(Y, 0) = Hoja1.Cells(Fila, 2).Value
Me.LISTA_BUSQUEDA.List(Y, 1) = Hoja1.Cells(Fila, 3).Value
Me.LISTA_BUSQUEDA.List(Y, 2) = Hoja1.Cells(Fila, 4).Value
Me.LISTA_BUSQUEDA.List(Y, 3) = Hoja1.Cells(Fila, 5).Value
Me.LISTA_BUSQUEDA.List(Y, 4) = Hoja1.Cells(Fila, 6).Value
Y = Y + 1
End If

Next

End Sub

-------------------------------------------------------------------------------------------------------------------------

Private Sub TEXT_BUSCAR3_Change()
numeroDatos = Hoja1.Range("B" & Rows.Count).End(xlUp).Row

Me.LISTA_BUSQUEDA = Clear
Me.LISTA_BUSQUEDA.RowSource = Clear
Y = 0

For Fila = 4 To numeroDatos

estatus = Hoja1.Cells(Fila, 4).Value

'

If UCase(estatus) Like "*" & UCase(Me.TEXT_BUSCAR3.Value) & "*" Then
Me.LISTA_BUSQUEDA.AddItem
Me.LISTA_BUSQUEDA.List(Y, 0) = Hoja1.Cells(Fila, 2).Value
Me.LISTA_BUSQUEDA.List(Y, 1) = Hoja1.Cells(Fila, 3).Value
Me.LISTA_BUSQUEDA.List(Y, 2) = Hoja1.Cells(Fila, 4).Value
Me.LISTA_BUSQUEDA.List(Y, 3) = Hoja1.Cells(Fila, 5).Value
Me.LISTA_BUSQUEDA.List(Y, 4) = Hoja1.Cells(Fila, 6).Value

Y = Y + 1
End If

Next

End Sub

----------------------------------------------------------------------------------------------------------------

Private Sub UserForm_Activate()
Me.LISTA_BUSQUEDA.RowSource = "DOCUMENTOS2"
Me.LISTA_BUSQUEDA.ColumnCount = 5
'Me.LISTA_BUSQUEDA.ColumnHeads = True
Me.LISTA_BUSQUEDA.ColumnWidths = "80;140;100;140;60"

End Sub

Agradezco de antemano el apoyo 

Saludos

Respuesta
1

Te dejo las instrucciones para pasar los campos del elemento seleccionado en el Listbox a los campos del Userform2.

Las instruciones van solo de ejemplo... tenés que reemplazar nombres de campos, nombre del UF y ubicación de columnas del listbox según tu modelo.

Se ejecuta con doble clic en el elemento de la lista.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'x Elsamatilde
'si no hay datos seleccionados se cancela
    If ListBox1.ListIndex < 0 Then Exit Sub
'se envian los datos a cada campo del Userform2 o como se llame el de Modificar
    UserForm2.ComboBox1 = ListBox1.List(ListBox1.ListIndex, 0)
    UserForm2.TextBox1 = ListBox1.List(ListBox1.ListIndex, 2)
    UserForm2.Show
End Sub

Una vez que estás en el UF modificando datos seguramente ya sabrás cómo guardar los cambios (*). Luego de guardarlos la instrucción será:

Unload Me

Y de este modo se cerrará y volverás a tu UF de búsqueda... esto es a criterio, quizás quieras cerrar los 2 UF.

(*) Si necesitas ayuda para guardar los datos del registro encontrado valora esta consulta y deja una nueva en el tablón ya con más detalles del segundo Userform.

¡Gracias! 

Elsa, muchas gracias por la respuesta, en breve lo pondré en acción y ya estaré publicando los resultados..

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas