Macro para filtrar y copiar en otro libro

Tengo el libro origen donde hay una base de datos con cédula, fecha de pago y valor de pago, otro libro destino en donde ingreso el número de cédula (celda B1) y espacio de inicio para pegar la información (Celda D1)

Quiero hacer una macro que al ingresar un número de cédula en el libro 2 me filtre en libro 1 con ese criterio, me copie todos los datos que aparecen después del filtro y los copie en le libro 2 celda D1. Además que el libro origen no este abierto, que la macro lo abra, lo lea y lo cierre enseguida.

1 respuesta

Respuesta
1

Tienes 2 libros

Libro origen con los datos

Libro destino donde quieres el resultado

  1. ¿En el libro origen en cuál hoja están los datos?
  2. ¿En el libro origen en cuál columna están las cédulas?
  3. ¿Pueden existir varios registros con la misma cédula o solamente hay un registro?
  4. Cuáles datos quieres copiar y en dónde los quieres pegar, es decir, solamente quieres 2 datos: "fecha de pago y valor de pago" entonces en D1 quieres "fecha de pago" y en E1 quieres "valor de pago"

Puedes responder en ese orden.

1. En le libro origen sólo hay una hoja en donde está la base datos con los campos Cédula, Fecha de pago y valor de pago. La hoja podría llamarse origen

2. En la columna B, el enunciado estaría en B1 y desde B2 los datos.

3. Si hay varios registros con la misma cédula, por eso había planteado organizarlo como un filtro pro no se is hay otra manera

4. Sí, quisiera pegar esos datos en el otro libro "destino" así como lo describes. También quisiera que en ese libro "destino" en la celda B1 sea donde se introduce la cédula que se va a buscar en el libro "origen". 

Muchas Gracias!

H   o  l a:

Todavía no me quedan claras algunas cosas, mejor envíame 2 archivos

1. El libro origen con datos de ejemplo

2. El libro destino, en este libro en la celda B1 escribe un cédula y en este mismo libro pon los datos que quieras que aparezcan, es decir, toma los datos del libro origen y los pegas en el libro destino.

3. Por último en el libro origen pinta de amarillo cuáles datos fueron los que copiaste.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “valentina446

Te anexo la macro

Sub Buscar_Nit()
'
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    h1.Range("D2:F" & Rows.Count).Clear
    '
    ruta = l1.Path & "\"
    num = h1.Range("B1")
    arch = h1.Range("B4")
    If num = "" Then
        MsgBox "Captura un número"
        Range("B1").Select
        Exit Sub
    End If
    '
    If arch = "" Then
        MsgBox "Captura el nombre del libro origen"
        Range("B4").Select
        Exit Sub
    End If
    '
    If Dir(ruta & arch) = "" Then
        MsgBox "El archivo origen no existe"
        Range("B4").Select
        Exit Sub
    End If
    '
    Set l2 = Workbooks.Open(ruta & arch)
    Set h2 = l2.Sheets(1)
    Set r = h2.Columns("A")
    Set b = r.Find(num, LookAt:=xlWhole)
    j = 2
    If Not b Is Nothing Then
        celda = b.Address
        Do
            'detalle
            h2.Range("A" & b.Row & ":C" & b.Row).Copy h1.Range("D" & j)
            j = j + 1
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> celda
    End If
    l2.Close False
    Application.ScreenUpdating = True
    MsgBox "Datos filtrados"
End Sub

.

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

.

Avísame cualquier duda

.

Hola Dante,

Intenté correr la macro pero no me funcionó, me queda la duda si distingue que son dos libros diferentes y que el libro origen donde están los datos se encuentra cerrado, la macro debe abrirlo y luego de sacar la información cerrarlo

Me cuentas, gracias :)

Claro que es para 2 libro, debes seguir las instrucciones que te envié por correo y seguir el ejemplo que te puse en tu libro

Deberás poner el archivo con la macro en la misma carpeta donde tienes el archivo origen.

Además de poner el número a buscar, deberás poner el nombre del archivo origen en la celda B4

.

'S aludos. Dante Amor. Recuerda valorar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas