Macro que busque un campo especifico en otro archivo y devuelva datos de tres celdas

Necesito una macro la cual busque uno o varios archivos en formato de facturas con el nombre de una matricula especifica colocada en una celda del archivo origen y en dichas facturas y cuando las encuentre, devuelva los valores colocados en las celdas (N9 y H13) más la fecha que esta en la celda (N5) y las coloques a partir de las columnas (G11, D11) y la fecha en la (B11) el archivo o plantilla.

1 respuesta

Respuesta
1

Te anexo la macro para buscar las matrículas. En esta macro va el directorio donde tienes los archivos con las matrículas:

Sub BuscarMatriculas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    '
    If h1.[B2] = "" Then
        MsgBox "Poner matrícula"
        Exit Sub
    End If
    '
    ruta = "C:\documents and Settings\Administrador\Escritorio\carpeta de factura\"
    'ruta = l1.Path & "\"
    arch = Dir(ruta & h1.[B2] & "*.xls")
    Do While arch <> ""
        Set l2 = Workbooks.Open(ruta & arch)
        Set h2 = l2.Sheets(1)
        u = 11
        Do While h1.Cells(u, "B") <> ""
            u = u + 1
        Loop
        h1.Cells(u, "G") = h2.[N9]
        h1.Cells(u, "D") = h2.[H13]
        h1.Cells(u, "B") = h2.[N5]
        l2.Close False
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Termiando"
End Sub

Si quieres otra carpeta cambia en la macro esta línea:

ruta = "C:\documents and Settings\Administrador\Escritorio\carpeta de factura\"


H o l a:

Para ejecutar la macro cuando abres el archivo pon el siguiente evento en Thisworkbook:

Private Sub Workbook_Open()
    BuscarMatriculas
End Sub

¡Gracias! 

Hola Dante,

¿Seria posible usar el numero secuencial de la celda "C5" que esta en la factura como identificador para decirle que haga la extracción si es diferente?

Dime si es posible para abrir una solicitud.

Tienes que explicarme cronológicamente cómo quieres que funcione.

Por ejemplo:

- Tienes en B5 = A815

- En la carpeta tienes únicamente el archivo A815-1

- Ejecutas la macro

- Lo que hace la macro es leer el archivo A815-1

- Generas el archivo A815-2

- Ejecutas la macro

- ¿Qué debe hacer la macro?

Opción A) leer el archivo A815-1

Opción B) leer el archivo A815-2

Opción C) ¿Leer el archivo A815-1 y A815-2?

- Generas el archivo A815-3

- Ejecutas la macro

- ¿Qué debe hacer la macro?

Opción A) leer el archivo A815-1

Opción B) leer el archivo A815-2

Opción C) ¿Leer el archivo A815-1 y A815-2?

Opción D) leer el archivo A815-3

Opción C) ¿Leer el archivo A815-1 y A815-2 y A815-3?


Si la celda C5 dice 1 entonces que solamente lea el A815-1

Si la celda C5 dice 2 entonces que solamente lea el A815-2

Si la celda C5 dice 2 entonces que solamente lea el A815-3


Crea la nueva pregunta y me explicas qué es lo que debería hacer la macro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas