Quiero extraer datos de otra hoja de excel que cumplan con un dato.

Tengo en el archivo origen un folio que se puede repetir n veces y una serie de datos en la fila como son codigo, nombre, Ancho Final, Apariencia, Proveedor, cliente, Pedido, dibujo y metros. El folio es mi campo llave que puede estar una o varias veces y hay datos que pueden cambiar como son ancho, Proveedor, cliente y metros.

Lo que necesito es que cuando registre un folio me extraiga del archivo origen los datos y los pegue en otro archivo.

Por favor me pueden ayudar para realizar esa extracción con una macro.

Muchas gracias y Saludos

1 Respuesta

Respuesta
2

- ¿La macro la vas a ejecutar desde tu archivo origen?

- ¿Quieres qué la información se pase a un archivo nuevo?

También dime en cuál fila y cuál columna empiezan tus datos

Si son correctas mis preguntas y tus datos empiezan en la celda A2, entonces utiliza la siguiente macro. En la celda G1 escribe el folio que quieras que se envíe a otro libro.

Sub ExtraerFolio()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
    u = Range("A" & Rows.Count).End(xlUp).Row
    Range("A2:I" & u).Select
    With Selection
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=[G1]
        .Copy
    End With
    '
    Workbooks. Add
    ActiveSheet. Paste
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: ExtraerFolio
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

Si es lo que necesitas.

La macro la voy a ejecutar desde el archivo destino el cual ya existe. Mi archivo origen se llama 2MASTERFILE y el destino Programa producción. 

Los datos empiezan en la columna A Fila 3 y termina en la T, la ultima fila se estará incrementando diariamente ahora voy en la fila 200.

Muchas gracias por su ayuda y su pronta respuesta.

También seria de gran ayuda que me por medio del botón me pida el folio y solo pueda extraer los folios que vaya solicitando para que se vayan agregando en el archivo destino

Muchas gracias por su apoyo

Te cambio la macro, ejecuta la macro en el libro destino, la macro pegará la información en tu hoja activa del libro destino.

La macro tomará la información del libro "2MASTERFILE.xlsx"

De la hoja "Hoja1", cambia este nombre por la hoja origen.

Entonces, escribe en la celda G1 de tu hoja destino el número de folio y ejecuta la macro

Importante! Debes tener los 2 libros abiertos.

Sub ExtraerFolio()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    '
    Set l2 = Workbooks("2MASTERFILE.xlsx")
    Set h2 = l2.Sheets("Hoja1")
    '
    Application.ScreenUpdating = False
    If h2.AutoFilterMode Then h2.AutoFilterMode = False
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    h2.Range("A3:T" & u).AutoFilter
    h2.Range("A3:T" & u).AutoFilter Field:=1, Criteria1:=h1.[G1]
    h2.Range("A3:T" & u).Copy h1.Range("A3")
End Sub

Saludos.Dante Amor

Muchas gracias por la respuesta. Sin embargo el archivo origen esta en una unidad de red, del cual no siempre esta abierto. Yo intente hacerlo por medio de una fórmula usando buscarv y quedo así VLOOKUP($A2,[2MASTERFILE.xls]LLEGADAS!$A:$T,2,FALSE) y me extrae el primer registro que encuentra, lo aplique para los datos de la fila del folio que se necesito eso inicialmente se veia bien cuando es un solo folio. No se si por fórmula esto sea posible, que cuando capture el folio en la columna A, en base a la fórmula agregada en las demás columnas pueda extraer todos los folios que encuentre o sera necesario por macro.

La información que me han proporcionado me ha resultado de mucha utilidad sin embargo no he podido lograr el objetivo. Agradeceré me puedan dar más sugerencias, de verdad muchas gracias por su tiempo.

Por fórmula no se podría, ya que la fórmula te regresa un solo dato, tal vez si puedes obtener una copia del archivo, abrirlo y ejecutar la macro, la copia la podrías desechar. Pero ya tendrías el filtro que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas