Necesito alguna macro que al meter el folio me muestre todos los productos almacenados en ese folio.

Tengo una hoja de calculo en excel, donde meto en "hoja1" todos mis pedidos y se almacenan por folio. Ejemplo: Folio 4582 incluye las ventas de 1 refresco, 2 papas, 5 galletas, etc. Y se almacenan en la "hoja2" hay veces que por el giro que tengo las personas deben dejar un anticipo para elaborar su pedido, lo que necesito es una macro o formula que al poner el folio me desglose los productos contenidos en ese folio, el total y lo que le resta por pagar.

1 respuesta

Respuesta
1

No dejas ninguna idea de cómo se encuentran ubicados los datos en las diferentes hojas ...

1- ¿Todas las hojas tienen los datos en las mismas ubicaciones? Deja una imagen de alguna hoja o subila a algún sitio o enviamela a mis correos (copialos desde los encabezados de mis páginas).

2- ¿Cómo se relaciona el Folio con la hoja? Es decir, ¿cómo saber que el Folio 4582 se encuentra en la Hoja2?

Quedo a la espera de tu envío o las aclaraciones aquí. No valores aún la respuesta.

Trate de hacerlo lo mas descritivamente posible, así es como se almacenan mis productos, si logras ver el folio 1450 se repite, quisiera que en la hoja dos, al meter mi folio en una sección, me desglose  la fecha de compra, el código y la cantidad que el cliente compro. para determinar si el total ya esta saldado de lo contrario determinar lo que le resta, muchas gracias por tu interés. en lo que yo pueda ser de tu ayuda, no dudes en pedirlo. Gracias 

Bien, así sería cómo se ve tu Hoja1...

Ahora falta que me muestres cómo es el formato de tu Hoja2, para saber en qué celdas ir pasando cada uno de los datos del folio solicitado.

Y también que significa esto: 'al meter mi folio en una sección,' ... ¿a qué llamas 'sección'?

Sdos!

Hola disculpa la demora, mira esta es la hoja de cancelaciones:

lo que en me gustaría hacer es :

cuando meta en la celda E3 (la de color gris) el folio, me coloque en la sección verde de código y cantidad los productos que vendí.

por ejemplo: necesito cancelar el folio 1456, entonces en la celda "gris" coloco 1456 y que en codigo y cantidad me busque los productos que tienen ese folio. no se si me sepa explicar. Saludos

Menos mal que mencionaste que la celda es E3 porque en ninguna de las 2 imágenes se observa la ubicación de los datos ;)

Imagino que en Hoja1 los datos empiezan en fila 2 y col A.

La macro se ejecutará al momento que ingreses un folio en la celda E3.

Entra al Editor de macros (con atajo de teclado Alt y F11), selecciona con doble clic la Hoja2 (o la que tenga la celda E3) y allí pega el código que dejo a continuación. La imagen te muestra el Editor.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim ho1, busco
Dim filx As Long, fily As Long
'se ejecuta al cambio en celda E3
If Target.Address <> "$E$3" Then Exit Sub
'si la celda se limpia o queda vacía no se ejecuta
If Target.Value = "" Then Exit Sub
'se busca en Hoja1, col A
Set ho1 = Sheets("Hoja1")    'ajustar nombre de hoja
'se recorre la col A hasta encontrar el dato
Set busco = ho1.[A:A].Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
'si no lo encuentra avisa y finaliza
If busco Is Nothing Then
    MsgBox "No se encuentra este folio en Hoja1. Verifica y ejecuta nuevamente.", , "ERROR"
    Exit Sub
End If
'a partir de aquí se recorre la col A pasando cada dato
filx = busco.Row
fily = 6    '1er fila de destino
While ho1.Cells(filx, 1) = Target.Value
    ActiveSheet.Range("C" & fily) = ho1.Cells(filx, 3)
    ActiveSheet.Range("D" & fily) = ho1.Cells(filx, 4)
    ActiveSheet.Range("E" & fily) = ho1.Cells(filx, 5)
    ActiveSheet.Range("F" & fily) = ho1.Cells(filx, 6)
    ActiveSheet.Range("G" & fily) = ho1.Cells(filx, 7)
    'incrementa las filas
    filx = filx + 1
    fily = fily + 1
Wend
MsgBox "Fin del pase"
End Sub

¡Gracias! Me ha funcionado de maravilla, lamento la demora de la respuesta, me tomo un día entender bien el proceso de la macro. ja ja. Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas