Macro que busca dependiendo dos celdas y copia info dependiendo lo que encuentra

Tengo información en dos hojas de un mismo libro de ventas, una hoja contiene las ventas de la primera semana de un mes y la otra hoja tiene ventas acumuladas a la segunda semana de un mes. Lo que necesito es que la macro busque dependiendo el producto y el lugar de venta y si encuentra que los valores son iguales en una hoja nueva me copie la diferencia de las unidades vendidas. En el caso que no encuentre valores semejantes, me copien en la hoja nueva todos los campos del nuevo producto que se vendió. Espero que haya sido claro y quedo atento a cualquier respuesta

1 Respuesta

Respuesta
1

Puedes explicar con ejemplos reales y con 4 imágenes, como sigue:

En la primer imagen pon la hoja de ventas de la primer semana, marca con algún color los datos que se van a buscar.

En la imagen 2 pon la hoja de ventas acumuladas, marca con colores en dónde se va a buscar.

En la imagen 3 pon la hoja nueva con el resultado: "la diferencia de las unidades vendidas"

En la imagen 4 pon la hoja nueva con el resultado: " todos los campos del nuevo producto que se vendió"

En todas las imágenes deben aparecer las filas y las columnas de excel.

Saludos. Dante Amor

Mira un ejemplo real es el siguiente: En la semana 1 se vende un celular que tiene una referencia en un lugar especifico que tiene otra referencia especifico. En la semana dos puede que se vendan tres celulares, es decir en la casilla de unidades vendidas me sale el valor de 4 y además puede que se venda otro tipo de celular. Lo que necesito es que en la me encuentre las unidades de diferencia que se vendieron en la semana 2 es decir 3 celulares y me agregue la otra referencia de celular.

Adjunto la imagen de lo que pidió, en amarillo se tienen los datos de búsqueda, lo que busca tiene que coincidir los dos valores en las semanas. En el resultado lo que esta en color azul son productos que no estaban en la semana 1 y fueron comprados en la semana 2. En naranja sale el inventario de la semana 2 y las unidades vendidas solo en la semana 2 es decir ( 6-5=1). Los productos en color verde tienen las mismas ventas asi que imprime el 0 y el Inventario de la semana 2. Quedo atento si necesita mas info. Saludos

No puedo hacer la macro sin esto que te pedí.

"En todas las imágenes deben aparecer las filas y las columnas de excel."

Puedes crear las imágenes nuevamente, esta vez procura que se vena las columnas y las filas de excel.

'

Tengo estas dudas:

1. No entiendo por qué el código 885370379969 lo pintaste de azul si ese código aparece en la semana 1 y en la semana 2, debería ser verde, ¿ya qué tuvo ventas 0 en las 2 semanas?

2. El código 7707850730127 no está en la semana 2, ¿qué hay que hacerle?

3. No entiendo lo que hay que poner en la columna "Resultado (Mostrar solo semana 4. En tu ejemplo el código 882224741620 tienes 3 en la semana 1, tienes 3 en Acumulado, significa que en la semana 2 no compraste nada, entonces según tu explicación en el resultado debería poner 0 y tu pusiste 3.

5. Dime el nombre de las 3 hojas.

Espero tus comentarios en ese orden.

Podrías crear nuevamente los ejemplos y me confirmas los resultados que necesitas de todos los casos. Recuerda poner las imágenes con las filas y las columnas de excel.

Hola Dante,

1)Si tienes razón ese debería ser verde

2) Los códigos que no aparecen en la semana dos no hay que hacerles nada

3)No eso solo era el nombre, pero no es necesario que muestre eso.

4)Es que en el caso de los inventarios no se hace ninguna operación aritmética, ya que ese es el real, la operación aritmética es solo en Unidades vendidas

5) Hoja 1: Semana 1; Hoja 2: Semana 1 y 2; Hoja 3: Resultado Semana 2

6) Voy a quitar los paréntesis que puse de explicación y mando fotos de la situación (No es necesario que el resultado salga con color) 

Quiero darte un poco mas de claridad, la información de inventarios de la semana 2 se tiene que colocar completa ya que es lo que esta sucediendo. La información de unidades vendidas es la diferencia de lo que se vendio en el acumulado de la semana 2 menos la semana 1 y si en la semana dos hay registro de ventas nuevas es necesario imprimirlo.

Hola Dante, ¿con la información que te pase es suficiente o necesitas algo más para que me puedas ayudar con la macro?

Mil gracias

Saludos,

Juan

Te anexo la macro

Sub ActualizarInventario()
'Por.Dante Amor
    Set h1 = Sheets("Semana 1")
    Set h2 = Sheets("Semana 1 y 2")
    Set h3 = Sheets("Semana 2")
    '
    h3.Cells.Clear
    h2.Range("A:D").Copy h3.[A1]
    '
    For i = 2 To h3.Range("B" & Rows.Count).End(xlUp).Row
        '
        Set r = h1.Columns("B")
        Set b = r.Find(h3.Cells(i, "B"), Lookat:=xlWhole)
        If Not b Is Nothing Then
            ncell = b.Address
            Do
                'detalle
                If h1.Cells(b.Row, "A") = h3.Cells(i, "A") Then
                    h3.Cells(i, "D") = h2.Cells(i, "D") - h1.Cells(b.Row, "D")
                    Exit Do
                End If
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> ncell
        End If
        '
    Next
    MsgBox "Terminado"
End Sub

Prueba y me comentas

Saludos. Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas