Exportar datos de un listbox a otro Libro Excel

Quiero hacer un formulario en vba que me filtre datos en un listbox y que dichos datos filtrados sean copiados en otro libro excel en columnas discontinuas. Soy novata en este tema y no logro encontrar información sobre ello.

2 respuestas

Respuesta
2

H   o la:

Envíame tu archivo que contiene el listbox, me dices qué datos y cómo quieres filtrar.

Luego en otro libro me pones el resultado que esperas después de copiar los datos filtrados.

Si puedes explícame con ejemplos, comentarios y colores dentro de la hoja, lo que tienes y lo que quieres llevar al otro libro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Milena Tito Cruzado” y el título de esta pregunta.

¡Gracias! Ya le envié mis excel por el correo tuve una pequeña confusión y le envié los 2 excel por separado. Disculpe el inconveniente y muchas gracias por ayudarme, dentro de los excel especifique lo que necesito.

Te anexo el código, solamente ayúdame poniendo en la macro el nombre del libro en esta línea, cambia "libro2.xlsx" por el nombre de tu libro real

libro2 = "libro2.xlsx"      'nombre del libro con todo y extensión

La macro completa:

Private Sub CommandButton2_Click()
'Por.Dante Amor
    Dim i, libro2, lib, existe, l2, h2, fila
    '
    libro2 = "libro2.xlsx"      'nombre del libro con todo y extensión
    '
    If ListBox1.ListCount = 0 Then
        MsgBox "No hay registros a pasar"
        Exit Sub
    End If
    existe = False
    For Each lib In Workbooks
        If LCase(lib.Name) = LCase(libro2) Then
            existe = True
        End If
    Next
    If existe = False Then
        MsgBox "El libro 2 no está abierto"
        Exit Sub
    End If
    '
    Set l2 = Workbooks(libro2)
    Set h2 = l2.Sheets(1)
    fila = 4
    h2.Range("A" & fila & ":I" & Rows.Count).ClearContents
    For i = 0 To ListBox1.ListCount - 1
        H2.Cells(fila, "A") = ListBox1.List(i, 0)
        H2.Cells(fila, "D") = ListBox1.List(i, 1)
        H2.Cells(fila, "E") = ListBox1.List(i, 2)
        H2.Cells(fila, "G") = ListBox1.List(i, 3)
        H2.Cells(fila, "I") = ListBox1.List(i, 4)
        fila = fila + 1
    Next
    MsgBox "Datos exportados"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Me sirvió de mucho tu código sin embargo también quería que pudiera enviar más de un dato, ya que por lo que veo me reemplaza el dato anterior yo quisiera que otros datos aparecieran en la línea siguiente.

Utiliza el siguiente código:

Private Sub CommandButton2_Click()
'Por.Dante Amor
    Dim i, libro2, lib, existe, l2, h2, fila
    '
    libro2 = "libro2.xlsx"      'nombre del libro con todo y extensión
    '
    If ListBox1.ListCount = 0 Then
        MsgBox "No hay registros a pasar"
        Exit Sub
    End If
    existe = False
    For Each lib In Workbooks
        If LCase(lib.Name) = LCase(libro2) Then
            existe = True
        End If
    Next
    If existe = False Then
        MsgBox "El libro 2 no está abierto"
        Exit Sub
    End If
    '
    Set l2 = Workbooks(libro2)
    Set h2 = l2.Sheets(1)
    fila = h2.Range("E" & Rows.Count).End(xlUp).Row + 1
    'h2.Range("A" & fila & ":I" & Rows.Count).ClearContents
    For i = 0 To ListBox1.ListCount - 1
        H2.Cells(fila, "A") = ListBox1.List(i, 0)
        H2.Cells(fila, "D") = ListBox1.List(i, 1)
        H2.Cells(fila, "E") = ListBox1.List(i, 2)
        H2.Cells(fila, "G") = ListBox1.List(i, 3)
        H2.Cells(fila, "I") = ListBox1.List(i, 4)
        fila = fila + 1
    Next
    MsgBox "Datos exportados"
End Sub

sal u dos

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas