Necesito una macro o las funciones anidadas para buscar un valor y regresar múltiples resultados en Excel

Tengo una base de datos de una relación de pedidos ordenados por el numero de folio, pero este la mayoría de las ocasiones se repite ya que cada fila contiene un articulo distinto, lo que necesito es (en otra hoja) generar una orden de pedido solo indicando el numero de folio (dato de la columna A) y que me despliegue los vales de la F a la K de todos los artículos contenidos en este folio.

2 respuestas

Respuesta
2

Te anexo la macro.

Cambia en la macro lo siguiente:

- "Hoja1" por el nombre de tu hoja con la base de datos.

- "Hoja2" por el nombre de la hoja con la orden de pedido

- J = 2, cambia 2 por el número de fila en la cual quieres que empiecen los vales

- Celda = "A1", por la celda de la hoja 2 en donde quieras escribir el número de folio.

La macro funciona así, escribe el número de folio en la celda A1 de la hoja2, ejecuta la macro.

La macro buscará todos los folios y los datos de las columnas F a K de la hoja 1 los copiará y los pegará en las columnas F a K de la hoja 2.

Sub filtrar2()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    u2 = h2.Range("F" & Rows.Count).End(xlUp).Row
    If u2 < 2 Then u2 = 2
    h2.Range("F" & u2 & ":K" & u2).ClearContents
    j = 2
    celda = "A1"
    Set r = h1.Columns("A")
    Set b = r.Find(h2.Range(celda), lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            h1.Range(h1.Cells(b.Row, "F"), h1.Cells(b.Row, "K")).Copy
            h2.Cells(j, "F").PasteSpecial Paste:=xlValues
            j = j + 1
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
End Sub

Si necesitas llenar algún formato de orden de pedido, tendría que verlo para adaptar la macro a las celdas del formato.

Hola Dante, gracias por tu respuesta... empezare a probarla. 

Claro, si tienes dudas o necesitas algún cambio avísame.

Saludos. Dante Amor

Recuerda valorar la respuesta.

Hola Dante, añadí el código a un botón para ejecutar pero no funciona, soy nueva en esto 

No te preocupes, lo seguimos intentando hasta que funcione.

Borra esta línea en la macro

Sub filtrar2()

Prueba nuevamente.

Cualquier duda lo seguimos revisando.

Dante, muchas gracias ya lo pude realizar!! 

Otra pregunta, si tengo unas 20 -30 que generar y quiero aprovechar los espacios de las hojas (que no se imprima una sola por hoja) y añadir un formato (logo y encabezado) ¿se puede? y ¿que tan complicado es?

Puedes crear una nueva pregunta. En la descripción de la pregunta me pones ejemplos de lo que tienes y de cómo lo quieres.

Respuesta
1

Leslie
¿Cómo te llevas con el Filtro avanzado (¡Ojo!... no el Autofiltro)?...

No conozco mucho... se puede utilizar en una hoja de calculo distinta a la base de datos?

Gracias Mario!!

Ya aprendí el filtro avanzado pero solo en la misma hoja y necesito que sea en otra distinta ya no requiero toda la info de la base de datos y la información filtrada la necesito en otro formato. 

Si sabes de como lo puedo hacer en distintas hojas te lo agradeceré. 

Saludos

Leslie: No sé que versión de Excel utilizas...
Y te lo digo puesto que en las versiones más nuevas, el filtro avanzado puede ser utilizado con los datos en una hoja y los criterios y el resultado en otra.
Si no fuese así, la solución es igualmente sencilla:
- Imagina tener los datos en la Hoja1. Selecciona ese rango de datos (como siempre: ¡Incluyendo a la fila superior de encabezados!) Y dale un Nombre en el libro (asumo que sabes a que me refiero).
- Luego te vas a la Hoja2. Pon donde te guste el rango de criterios, aplica el filtro avanzado con:
a) Acción ---> Copiar a otro lugar.
b) Rango de la lista ---> (pones el nombre definido del que antes hablamos).
c) Rango de criterios ---> el que hayas elegido de la Hoja2.
d) Copiar a ---> el que hayas elegido de la Hoja2.
O sea que lo único diferente respecto de lo que se hace en la misma hoja es aquella definición de Nombre en el Libro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas