Enlazar un registro de listbox a una celda especifica en excel

¿Cómo puedo enlazar un registro (Resultado de la búsqueda) seleccionado en un listbox, mediante un botón a una celda especifica de Excel.

Se trata de una Nota de Venta (Hoja3) enlazada a un formulario de búsqueda. Lo que requiero es que después de generar el resultado de búsqueda y seleccionarlo en el listbox, presione un botón (Seleccionar) y este lleve la información hasta la celda A9 de la Hoja3.

Anexo Código:

Private Sub bbuscar_Click()
    If Me.tb1.Value = Empty Then
        MsgBox "Debes ingresar un dato para buscar"
        Me.ListBox1.Clear
        Me.tb1.SetFocus
        Exit Sub
    End If
Me.ListBox1.Clear
items = Range("Tabla2").CurrentRegion.Rows.Count

        For i = 2 To items
            If LCase(Cells(i, 1).Value) Like "*" & LCase(Me.tb1.Value) & "*" Then
                Me.ListBox1.AddItem Cells(i, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
            ElseIf LCase(Cells(i, 2).Value) Like "*" & LCase(Me.tb1.Value) & "*" Then
                Me.ListBox1.AddItem Cells(i, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
            End If
        Next i
            Me.tb1.SetFocus
            Me.tb1.SelStart = 0
            Me.tb1.SelLength = Len(Me.tb1.Text)
Exit Sub
End Sub

Private Sub bsalir_Click()
    Unload Me
End Sub

Solo me faltaría el código a utilizar para definirlo en el botón Seleccionar.

1 respuesta

Respuesta
1

Pero no pusiste qué dato del listbox quieres poner en la celda A9

"presione un botón (Seleccionar) y este lleve la información hasta la celda A9 de la Hoja3"

Te pongo un ejemplo, voy a pasar 2 datos del registro seleccionado, la columna 0 y la columna 1 del listbox; y los voy a poner en las celdas A9 y A10 de la hoja3

Private Sub CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un registro del listbox", vbExclamation
        Exit Sub
    End If
    '
    Sheets("Hoja3").Range("A9") = ListBox1.List(ListBox1.ListIndex, 0)
    Sheets("Hoja3").Range("A10") = ListBox1.List(ListBox1.ListIndex, 1)
    MsgBox "Datos pasados a la hoja3", vbInformation
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Dante, buenas tardes:

Estuve haciendo adecuaciones siguiendo el ejemplo y las recomendaciones pero al compilar el programa (Se ha producido un error "9" en tiempo de ejecución).

Sub indice fuera del intervalo.

¿Podrías ayudarme a solucionar este detalle?

Quedo a tus órdenes para atender tus comentarios y agradeciendo tus atenciones al presente.

Saludos! Pedro.

Puedes poner el código completo y qué línea de la macro tiene el problema

Dante, buenos días:

Anexo Código..

Private Sub bbuscar_Click()
If Me.tb1.Value = Empty Then
MsgBox "Debes ingresar un dato para buscar"
Me.ListBox1.Clear
Me.tb1.SetFocus
Exit Sub
End If
Me.ListBox1.Clear
items = Range("Tabla2").CurrentRegion.Rows.Count

For i = 2 To items
If LCase(Cells(i, 1).Value) Like "*" & LCase(Me.tb1.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
ElseIf LCase(Cells(i, 2).Value) Like "*" & LCase(Me.tb1.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
End If
Next i
Me.tb1.SetFocus
Me.tb1.SelStart = 0
Me.tb1.SelLength = Len(Me.tb1.Text)
Exit Sub
End Sub
Private Sub bsalir_Click()
Unload Me
End Sub

Private Sub bseleccionar_Click()
If ListBox1.ListIndex = -1 Then
MsgBox "Selecciona un registro del listbox", vbExclamation
Exit Sub
End If
'
Sheets("Hoja3").Range("A9") = ListBox1.List(ListBox1.ListIndex, 0)
Sheets("Hoja3").Range("A10") = ListBox1.List(ListBox1.ListIndex, 1)
MsgBox "Datos pasados a la hoja3", vbInformation
End Sub

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

Error "9" en tiempo de ejecución. Sub indice fuera del intervalo.

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

Al revisar el código en el compilador, la línea que hace referencia al error es la siguiente:

Sheets("Hoja3").Range("A9") = ListBox1.List(ListBox1.ListIndex, 0)

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

Quedo a tus órdenes para atender tus comentarios.

Gracias! Pedro.

Igual si me indicas algún correo, con gusto puedo mandarte el archivo para que lo valores. Saludos!

Sí, envíame tu archivo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Pedro Araujo” y el título de esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas